62 lines
1.6 KiB
Dart
62 lines
1.6 KiB
Dart
/// 应用异常基类
|
|
class AppException implements Exception {
|
|
final String message;
|
|
final int? code;
|
|
final dynamic data;
|
|
|
|
AppException(this.message, {this.code, this.data});
|
|
|
|
@override
|
|
String toString() => 'AppException: $message (code: $code)';
|
|
}
|
|
|
|
/// 网络异常
|
|
class NetworkException extends AppException {
|
|
NetworkException(super.message, {super.code, super.data});
|
|
}
|
|
|
|
/// 认证异常
|
|
class AuthException extends AppException {
|
|
AuthException(super.message, {super.code, super.data});
|
|
}
|
|
|
|
/// 服务器异常
|
|
class ServerException extends AppException {
|
|
ServerException(super.message, {super.code, super.data});
|
|
}
|
|
|
|
/// Token过期异常
|
|
class TokenExpiredException extends AuthException {
|
|
TokenExpiredException()
|
|
: super('Token已过期,请重新登录', code: 401);
|
|
}
|
|
|
|
/// RefreshToken过期异常
|
|
class RefreshTokenExpiredException extends AuthException {
|
|
RefreshTokenExpiredException()
|
|
: super('登录已过期,请重新登录', code: 40020);
|
|
}
|
|
|
|
/// 未授权异常
|
|
class UnauthorizedException extends AuthException {
|
|
UnauthorizedException() : super('未授权,请先登录', code: 403);
|
|
}
|
|
|
|
/// 文件不存在异常
|
|
class FileNotFoundException extends AppException {
|
|
FileNotFoundException() : super('文件不存在', code: 404);
|
|
}
|
|
|
|
/// 存储空间不足异常
|
|
class StorageSpaceException extends AppException {
|
|
StorageSpaceException() : super('存储空间不足', code: 507);
|
|
}
|
|
|
|
/// 两步验证需要异常
|
|
class TwoFactorRequiredException extends AuthException {
|
|
final String sessionId;
|
|
|
|
TwoFactorRequiredException(this.sessionId)
|
|
: super('需要两步验证', code: 203);
|
|
}
|