Files
unionflow-mobile-apps/lib/core/error/exceptions.dart
dahoud d094d6db9c Initial commit: unionflow-mobile-apps
Application Flutter complète (sans build artifacts).

Signed-off-by: lions dev Team
2026-03-15 16:30:08 +00:00

75 lines
2.2 KiB
Dart

/// Exception de base pour l'application
abstract class AppException implements Exception {
final String message;
final String? code;
const AppException(this.message, [this.code]);
@override
String toString() => 'AppException: $message${code != null ? ' (Code: $code)' : ''}';
}
/// Exception serveur
class ServerException extends AppException {
const ServerException(super.message, [super.code]);
@override
String toString() => 'ServerException: $message${code != null ? ' (Code: $code)' : ''}';
}
/// Exception de cache
class CacheException extends AppException {
const CacheException(super.message, [super.code]);
@override
String toString() => 'CacheException: $message${code != null ? ' (Code: $code)' : ''}';
}
/// Exception de réseau
class NetworkException extends AppException {
const NetworkException(super.message, [super.code]);
@override
String toString() => 'NetworkException: $message${code != null ? ' (Code: $code)' : ''}';
}
/// Exception d'authentification
class AuthException extends AppException {
const AuthException(super.message, [super.code]);
@override
String toString() => 'AuthException: $message${code != null ? ' (Code: $code)' : ''}';
}
/// Exception de validation
class ValidationException extends AppException {
const ValidationException(super.message, [super.code]);
@override
String toString() => 'ValidationException: $message${code != null ? ' (Code: $code)' : ''}';
}
/// Exception non autorisé (401)
class UnauthorizedException extends AppException {
const UnauthorizedException([super.message = 'Non autorisé', super.code]);
@override
String toString() => 'UnauthorizedException: $message${code != null ? ' (Code: $code)' : ''}';
}
/// Exception non trouvé (404)
class NotFoundException extends AppException {
const NotFoundException([super.message = 'Ressource non trouvée', super.code]);
@override
String toString() => 'NotFoundException: $message${code != null ? ' (Code: $code)' : ''}';
}
/// Exception interdit (403)
class ForbiddenException extends AppException {
const ForbiddenException([super.message = 'Accès interdit', super.code]);
@override
String toString() => 'ForbiddenException: $message${code != null ? ' (Code: $code)' : ''}';
}