2025-10-09 16:48:46 +08:00

144 lines
8.3 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// V2NIMError.h
// NIMLib
//
// Created by Netease.
// Copyright (c) 2023 Netease. All rights reserved.
//
#import <Foundation/Foundation.h>
#if defined(__cplusplus)
#define V2_NIM_ERROR_EXTERN extern "C"
#else
#define V2_NIM_ERROR_EXTERN extern
#endif
NS_ASSUME_NONNULL_BEGIN
/// 错误来源
typedef NS_ENUM(NSInteger, V2NIMErrorSource) {
V2NIM_ERROR_SOURCE_UNKNOWN = 0, ///< 未知来源
V2NIM_ERROR_SOURCE_PROTOCOL = 1, ///< 协议错误来源
V2NIM_ERROR_SOURCE_LOCAL = 2, ///< 本地错误来源
};
typedef NSString *V2NIMErrorDetailKey;
/// 错误信息
@interface V2NIMError : NSObject <NSCopying>
/// 错误来源
@property(nonatomic,assign,readonly) V2NIMErrorSource source;
/// 错误码
@property(nonatomic,assign,readonly) int code;
/// 错误描述
@property(nonatomic,strong,readonly) NSString *desc;
/// 错误详情
@property(nonatomic,strong,readonly) NSDictionary<V2NIMErrorDetailKey, id> *detail;
/**
* 将NSError转换为V2NIMError
*
* @param nserror
* @return 返回V2NIMError
* @discussion V2NIMError向前兼容在V2之前的API中返回的NSError可通过此获取到V2NIMError
*/
+ (nullable instancetype)errorWithNSError:(NSError *)nserror;
/// 将V2NIMError转换为NSError
@property(nonatomic,strong,readonly) NSError *nserror;
@end
/// 错误详情 账号
V2_NIM_ERROR_EXTERN V2NIMErrorDetailKey const V2NIM_ERROR_DETAIL_ACCOUNT;
/// 错误详情 群id
V2_NIM_ERROR_EXTERN V2NIMErrorDetailKey const V2NIM_ERROR_DETAIL_TEAM_ID;
typedef NS_ENUM(NSInteger, V2NIMErrorCode) {
V2NIM_ERROR_CODE_UNKNOWN = 0, ///< 未知错误
V2NIM_ERROR_CODE_SUCCESS = 200, ///< 请求成功
V2NIM_ERROR_CODE_HANDSHAKE = 201, ///< 握手错误
V2NIM_ERROR_CODE_REQUEST_SERVER_TEMPERARY_FORBIDDEN = 398, ///< 请求被服务器暂时禁止
V2NIM_ERROR_CODE_REQUEST_SERVER_UNIT_ERROR = 399, ///< 请求服务器单元错误
V2NIM_ERROR_CODE_FORBIDDEN = 403, ///< 客户端没有权限访问请求的资源
V2NIM_ERROR_CODE_NOT_FOUND = 404, ///< 资源不存在
V2NIM_ERROR_CODE_PARAMETER_ERROR = 414, ///< 参数错误
V2NIM_ERROR_CODE_FREQUNENCY_LIMIT = 416, ///< 频率超限
V2NIM_ERROR_CODE_MULTI_LOGIN_FORBIDDEN = 417, ///< 多端登录被禁止
V2NIM_ERROR_CODE_SERVER_INTERNAL_ERROR = 500, ///< 服务器内部错误
V2NIM_ERROR_CODE_SERVER_BUSY = 503, ///< 服务器繁忙
V2NIM_ERROR_CODE_APP_UNREACHABLE = 511, ///< app 服务不可达
V2NIM_ERROR_CODE_SERVICE_UNAVAILABLE = 514, ///< 服务不可用
V2NIM_ERROR_CODE_PROTOCOL_BLACKHOLE_FILTERED = 599, ///< 协议被黑洞规则过滤
V2NIM_ERROR_CODE_NO_PERMISSION = 997, ///< appid 没有权限调用该协议
V2NIM_ERROR_CODE_UNPACK_ERROR = 998, ///< 解包错误
V2NIM_ERROR_CODE_PACK_ERROR = 999, ///< 打包错误
V2NIM_ERROR_CODE_APPKEY_BLOCKED = 101403, ///< appkey 被禁用
V2NIM_ERROR_CODE_APPKEY_NOT_EXIST = 101404, ///< appkey 不存在
V2NIM_ERROR_CODE_BUNDLEID_CHECK_FAILED = 101414, ///< bundleid 校验失败
V2NIM_ERROR_CODE_INVALID_TOKEN = 102302, ///< 无效 token
V2NIM_ERROR_CODE_ROBOT_NOT_ALLOWED = 102403, ///< 机器人账号不得登录
V2NIM_ERROR_CODE_ACCOUNT_NOT_EXIST = 102404, ///< 用户不存在
V2NIM_ERROR_CODE_SENDER_HAS_BEEN_MUTED = 102421, ///<发送方被禁言
V2NIM_ERROR_CODE_ACCOUNT_BLOCKED = 102422, ///< 账号被禁用
V2NIM_ERROR_CODE_SENDER_HAS_BEEN_BLACKLISTED = 102426, ///< 消息发送方被设为黑名单
V2NIM_ERROR_CODE_RECIPIENT_NOT_FRIEDN = 104404, ///<接收方非好友
V2NIM_ERROR_CODE_RECIPIENT_ACCEPETED_REQUEST = 104405, ///<接收方已添加好友
V2NIM_ERROR_CODE_CANNOT_REVOKE_QIYU = 107301, ///< 不能撤回七鱼的消息
V2NIM_ERROR_CODE_NOT_SENDER_OR_ADMINISTRATOR = 107315, ///< 不是消息发送者或者群管理员
V2NIM_ERROR_CODE_LIST_EXCEEDS_LIMIT = 107316, ///< 强推列表超过上限
V2NIM_ERROR_CODE_ACK_EXCEEDS_FREQUENCY_LIMIT = 107317, ///< ack消息超频
V2NIM_ERROR_CODE_SNAPSHOT_NOT_FOUND = 107318, ///< 快照未发现
V2NIM_ERROR_CODE_EXCEEDS_UPPER_LIMIT = 107319, ///< 数量超过上限
V2NIM_ERROR_CODE_QUANTITY_EXCEEDS_LIMIT = 107321, ///< 数量超过上限
V2NIM_ERROR_CODE_MESSAGE_NOT_EXIST = 107404, ///< 消息不存在
V2NIM_ERROR_CODE_APP_HAS_BEEN_MUTED = 107410, ///< 应用被禁
V2NIM_ERROR_CODE_CANNOT_REVOKE_YOURSELF = 107429, ///< 不能撤回自己给自己发的消息
V2NIM_ERROR_CODE_SEVER_ANTISPAM = 107451, ///< 服务器反垃圾
V2NIM_ERROR_CODE_CLIENT_ANTISPAM = 107452, ///< 客户端反垃圾
V2NIM_ERROR_CODE_MUTE_ALL_REGULAR_MEMBERS = 108306, ///< 禁言所有群普通成员
V2NIM_ERROR_CODE_GROUP_NOT_EXIST = 108404, ///< 群不存在
V2NIM_ERROR_CODE_GROUP_MUTE_MODE = 108423, ///< 群整体禁言
V2NIM_ERROR_CODE_ALREADY_IN_TEAM = 109311, ///< 已经在群里
V2NIM_ERROR_CODE_NOT_IN_GROUP = 109404, ///< 不在群里
V2NIM_ERROR_CODE_GROUP_MEMBER_MUTED = 109423, ///< 群成员被禁言
V2NIM_ERROR_CODE_EXCEEDS_MAXIMUM_LIMIT = 189301, ///< 超过个数上限
V2NIM_ERROR_CODE_CONCURRENT_OPERATION_TRY_AGANI = 189449, ///< 并发操作请重试
V2NIM_ERROR_CODE_INTERNAL = 190001, ///< 内部错误
V2NIM_ERROR_CODE_ILLEGAL_STATE = 190002, ///< 非法状态
V2NIM_ERROR_CODE_MISUSE = 191001, ///< 使用姿势错误
V2NIM_ERROR_CODE_CANCELLED = 191002, ///< 操作取消
V2NIM_ERROR_CODE_CALLBACK = 191003, ///< 回调错误
V2NIM_ERROR_CODE_INVALID_PARAMETER = 191004, ///< 参数错误
V2NIM_ERROR_CODE_TIMEOUT = 191005, ///< 超时
V2NIM_ERROR_CODE_REQUEST_RESOURCE_NOT_EXIST = 191006, ///< 请求资源不存在
V2NIM_ERROR_CODE_REQUEST_RESOURCE_EXIST = 191007, ///< 请求资源已存在
V2NIM_ERROR_CODE_CONNECT_FAILED = 192001, ///< 连接错误
V2NIM_ERROR_CODE_CONNECT_TIMEOUT = 192002, ///< 连接超时
V2NIM_ERROR_CODE_DISCONNECT = 192003, ///< 连接断开
V2NIM_ERROR_CODE_PROTOCOL_TIMEOUT = 192004, ///< 协议超时
V2NIM_ERROR_CODE_PROTOCOL_SEND_FAILED = 192005, ///< 协议发送失败
V2NIM_ERROR_CODE_REQUEST_FAILED = 192006, ///< 请求失败
V2NIM_ERROR_CODE_DATABASE_OPEN_FAILED = 193001, ///<数据库打开失败
V2NIM_ERROR_CODE_DATABASE_UPGRADE_FAILED = 193002, ///<数据库升级失败
V2NIM_ERROR_CODE_DATABASE_WRITE_FAILED = 193003, ///<数据库写入失败
V2NIM_ERROR_CODE_DATABASE_READ_FAILED = 193004, ///<数据库读取失败
V2NIM_ERROR_CODE_FILE_NOT_FOUND = 194001, ///<文件不存在
V2NIM_ERROR_CODE_FILE_CREATE_FAILED = 194002, ///<文件创建失败
V2NIM_ERROR_CODE_FILE_OPEN_FAILED = 194003, ///<文件打开失败
V2NIM_ERROR_CODE_FILE_WRITE_FAILED = 194004, ///<文件写入失败
V2NIM_ERROR_CODE_FILE_READ_FAILED = 194005, ///<文件读取失败
V2NIM_ERROR_CODE_LOCAL_ANTISPAM = 195001 ///<命中本地反垃圾
};
NS_ASSUME_NONNULL_END