GT3Error.h 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. //
  2. // GT3Error.h
  3. // GTViewManager
  4. //
  5. // Created by NikoXu on 8/16/16.
  6. // Copyright © 2016 Geetest. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. /**
  11. * 极验定义的错误类型
  12. */
  13. typedef NS_ENUM(NSUInteger, GT3ErrorType) {
  14. /** 未知错误类型 */
  15. GT3ErrorTypeUnknown = 0,
  16. /** 用户中断验证导致 */
  17. GT3ErrorTypeUser,
  18. /** 服务端返回错误 */
  19. GT3ErrorTypeServer,
  20. /** 内部网络抛出错误类型 */
  21. GT3ErrorTypeNetWorking,
  22. /** 内部浏览器抛出的错误类型 */
  23. GT3ErrorTypeWebView,
  24. /** 从前端库抛出的错误类型 */
  25. GT3ErrorTypeJavaScript,
  26. /** 内部解码错误类型 */
  27. GT3ErrorTypeDecode,
  28. /** 外部错误类型 */
  29. GT3ErrorTypeExtern
  30. };
  31. /**
  32. * 极验封装的NSError
  33. */
  34. @interface GT3Error : NSError
  35. /** 发生错误时接收到的元数据, 没有数据则为nil */
  36. @property (nonatomic, readonly, strong) NSData * _Nullable metaData;
  37. /** 用于定位极验问题的错误码 */
  38. @property (nonatomic, strong, readonly) NSString *error_code;
  39. /** 极验的额外错误信息, 返回userInfo */
  40. @property (nonatomic, readonly, strong) NSString *gtDescription;
  41. /** 原始的error */
  42. @property (nonatomic, readonly, strong) NSError * _Nullable originalError;
  43. /**
  44. * 通过提供的详细的参数初始化GT3Error
  45. * @seealso NSError
  46. */
  47. + (instancetype)errorWithDomainType:(GT3ErrorType)type code:(NSInteger)code userInfo:(nullable NSDictionary *)dict withGTDesciption:(NSString *)description;
  48. /**
  49. * 基于提供的NSError封装成GT3Error
  50. * @seealso NSError
  51. */
  52. + (instancetype)errorWithDomainType:(GT3ErrorType)type originalError:(NSError *)originalError withGTDesciption:(NSString *)description;
  53. @end
  54. NS_ASSUME_NONNULL_END