Files
voidea/flutter/lib/core/api/exceptions.dart
T

42 lines
1.3 KiB
Dart

class ApiException implements Exception {
final String message;
final int? statusCode;
final Map<String, dynamic>? errors;
ApiException(this.message, {this.statusCode, this.errors});
@override
String toString() => 'ApiException($statusCode): $message';
}
class UnauthorizedException extends ApiException {
UnauthorizedException([String? message])
: super(message ?? 'Требуется авторизация', statusCode: 401);
}
class NotFoundException extends ApiException {
NotFoundException([String? message])
: super(message ?? 'Ресурс не найден', statusCode: 404);
}
class ValidationException extends ApiException {
ValidationException([String? message, Map<String, dynamic>? errors])
: super(message ?? 'Ошибка валидации',
statusCode: 422, errors: errors);
}
class ServerException extends ApiException {
ServerException([String? message])
: super(message ?? 'Внутренняя ошибка сервера', statusCode: 500);
}
class NetworkException extends ApiException {
NetworkException([String? message])
: super(message ?? 'Ошибка сети', statusCode: null);
}
class TariffLimitException extends ApiException {
TariffLimitException([String? message])
: super(message ?? 'Достигнут лимит тарифа', statusCode: 403);
}