GT3Error.h 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. GT3ErrorTypeUser,
  16. /** 服务端返回错误 */
  17. GT3ErrorTypeServer,
  18. /** 内部网络抛出错误类型 */
  19. GT3ErrorTypeNetWorking,
  20. /** 内部浏览器抛出的错误类型 */
  21. GT3ErrorTypeWebView,
  22. /** 从前端库抛出的错误类型 */
  23. GT3ErrorTypeJavaScript,
  24. /** 内部解码错误类型 */
  25. GT3ErrorTypeDecode,
  26. /** 未知错误类型 */
  27. GT3ErrorTypeUnknown
  28. };
  29. /**
  30. * 极验封装的NSError
  31. */
  32. @interface GT3Error : NSError
  33. /** 发生错误时接收到的元数据, 没有数据则为nil */
  34. @property (nonatomic, readonly, strong) NSData * _Nullable metaData;
  35. /** 用于定位极验问题的错误码 */
  36. @property (nonatomic, strong, readonly) NSString *error_code;
  37. /** 极验的额外错误信息, 返回userInfo */
  38. @property (nonatomic, readonly, strong) NSString *gtDescription;
  39. /** 原始的error */
  40. @property (nonatomic, readonly, strong) NSError * _Nullable originalError;
  41. /**
  42. * 通过提供的详细的参数初始化GT3Error
  43. * @seealso NSError
  44. */
  45. + (instancetype)errorWithDomainType:(GT3ErrorType)type code:(NSInteger)code userInfo:(nullable NSDictionary *)dict withGTDesciption:(NSString *)description;
  46. /**
  47. * 基于提供的NSError封装成GT3Error
  48. * @seealso NSError
  49. */
  50. + (instancetype)errorWithDomainType:(GT3ErrorType)type originalError:(NSError *)originalError withGTDesciption:(NSString *)description;
  51. @end
  52. NS_ASSUME_NONNULL_END