init cc
This commit is contained in:
3
lib/core/errors/errors.dart
Normal file
3
lib/core/errors/errors.dart
Normal file
@@ -0,0 +1,3 @@
|
||||
// Barrel export file for errors
|
||||
export 'exceptions.dart';
|
||||
export 'failures.dart';
|
||||
79
lib/core/errors/exceptions.dart
Normal file
79
lib/core/errors/exceptions.dart
Normal file
@@ -0,0 +1,79 @@
|
||||
/// Base exception class for the application
|
||||
abstract class AppException implements Exception {
|
||||
final String message;
|
||||
final String? code;
|
||||
final dynamic originalError;
|
||||
|
||||
const AppException(
|
||||
this.message, {
|
||||
this.code,
|
||||
this.originalError,
|
||||
});
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'AppException: $message${code != null ? ' (Code: $code)' : ''}';
|
||||
}
|
||||
}
|
||||
|
||||
/// Network-related exceptions
|
||||
class NetworkException extends AppException {
|
||||
const NetworkException(
|
||||
super.message, {
|
||||
super.code,
|
||||
super.originalError,
|
||||
});
|
||||
}
|
||||
|
||||
/// Cache-related exceptions
|
||||
class CacheException extends AppException {
|
||||
const CacheException(
|
||||
super.message, {
|
||||
super.code,
|
||||
super.originalError,
|
||||
});
|
||||
}
|
||||
|
||||
/// Validation-related exceptions
|
||||
class ValidationException extends AppException {
|
||||
const ValidationException(
|
||||
super.message, {
|
||||
super.code,
|
||||
super.originalError,
|
||||
});
|
||||
}
|
||||
|
||||
/// Authentication-related exceptions
|
||||
class AuthException extends AppException {
|
||||
const AuthException(
|
||||
super.message, {
|
||||
super.code,
|
||||
super.originalError,
|
||||
});
|
||||
}
|
||||
|
||||
/// Server-related exceptions
|
||||
class ServerException extends AppException {
|
||||
final int? statusCode;
|
||||
|
||||
const ServerException(
|
||||
super.message, {
|
||||
this.statusCode,
|
||||
super.code,
|
||||
super.originalError,
|
||||
});
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'ServerException: $message${statusCode != null ? ' (Status: $statusCode)' : ''}${code != null ? ' (Code: $code)' : ''}';
|
||||
}
|
||||
}
|
||||
|
||||
/// Local storage exceptions
|
||||
class StorageException extends AppException {
|
||||
const StorageException(
|
||||
super.message, {
|
||||
super.code,
|
||||
super.originalError,
|
||||
});
|
||||
}
|
||||
59
lib/core/errors/failures.dart
Normal file
59
lib/core/errors/failures.dart
Normal file
@@ -0,0 +1,59 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
/// Base failure class for error handling in the application
|
||||
abstract class Failure extends Equatable {
|
||||
final String message;
|
||||
final String? code;
|
||||
|
||||
const Failure(this.message, {this.code});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message, code];
|
||||
|
||||
@override
|
||||
String toString() => 'Failure: $message${code != null ? ' (Code: $code)' : ''}';
|
||||
}
|
||||
|
||||
/// Network failure
|
||||
class NetworkFailure extends Failure {
|
||||
const NetworkFailure(super.message, {super.code});
|
||||
}
|
||||
|
||||
/// Server failure
|
||||
class ServerFailure extends Failure {
|
||||
final int? statusCode;
|
||||
|
||||
const ServerFailure(
|
||||
super.message, {
|
||||
this.statusCode,
|
||||
super.code,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message, code, statusCode];
|
||||
}
|
||||
|
||||
/// Cache failure
|
||||
class CacheFailure extends Failure {
|
||||
const CacheFailure(super.message, {super.code});
|
||||
}
|
||||
|
||||
/// Validation failure
|
||||
class ValidationFailure extends Failure {
|
||||
const ValidationFailure(super.message, {super.code});
|
||||
}
|
||||
|
||||
/// Authentication failure
|
||||
class AuthFailure extends Failure {
|
||||
const AuthFailure(super.message, {super.code});
|
||||
}
|
||||
|
||||
/// Storage failure
|
||||
class StorageFailure extends Failure {
|
||||
const StorageFailure(super.message, {super.code});
|
||||
}
|
||||
|
||||
/// Unknown failure
|
||||
class UnknownFailure extends Failure {
|
||||
const UnknownFailure(super.message, {super.code});
|
||||
}
|
||||
Reference in New Issue
Block a user