AppFailure class sealed
Failure types for Clean Architecture
A sealed class hierarchy representing different types of failures that can occur in the application. Using sealed classes enables exhaustive pattern matching in switch expressions.
Example:
void handleFailure(AppFailure failure) {
switch (failure) {
case ServerFailure(:final statusCode):
print('Server error: $statusCode');
case NetworkFailure():
print('Check your connection');
case ValidationFailure(:final fieldErrors):
print('Invalid input: $fieldErrors');
case NotFoundFailure():
print('Resource not found');
case UnauthorizedFailure():
print('Please login');
case ForbiddenFailure():
print('Access denied');
case CacheFailure():
print('Cache error');
case TimeoutFailure():
print('Request timed out');
case CancellationFailure():
print('Operation cancelled');
case ConflictFailure():
print('Conflict detected');
case UnknownFailure():
print('Something went wrong');
}
}
- Implemented types
- Implementers
- Available extensions
Constructors
- AppFailure.cache(String message, {StackTrace? stackTrace, Object? cause})
-
Create a cache failure
constfactory
- AppFailure.cancellation([String message])
-
Create a cancellation failure
constfactory
- AppFailure.conflict(String message, {String? conflictType, StackTrace? stackTrace, Object? cause})
-
Create a conflict failure
constfactory
- AppFailure.create()
-
Create a generic failure with a default message.
factory
- AppFailure.forbidden(String message, {String? requiredPermission, StackTrace? stackTrace, Object? cause})
-
Create a forbidden failure
constfactory
- AppFailure.from(Object error, [StackTrace? stackTrace])
-
Create an AppFailure from any error
factory
- AppFailure.network(String message, {StackTrace? stackTrace, Object? cause})
-
Create a network failure
constfactory
- AppFailure.notFound(String message, {String? resourceId, String? resourceType, StackTrace? stackTrace, Object? cause})
-
Create a not found failure
constfactory
- AppFailure.platform(String message, {String? code, dynamic details, StackTrace? stackTrace, Object? cause})
-
Create a platform failure
constfactory
- AppFailure.server(String message, {int? statusCode, StackTrace? stackTrace, Object? cause})
-
Create a server error failure
constfactory
- AppFailure.state(String message, {StackTrace? stackTrace, Object? cause})
-
Create a state failure
constfactory
- AppFailure.timeout(String message, {Duration? timeout, StackTrace? stackTrace, Object? cause})
-
Create a timeout failure
constfactory
- AppFailure.type(String message, {StackTrace? stackTrace, Object? cause})
-
Create a type failure
constfactory
-
Create an unauthorized failure
constfactory
- AppFailure.unimplemented(String message, {StackTrace? stackTrace, Object? cause})
-
Create an unimplemented failure
constfactory
- AppFailure.unknown(String message, {StackTrace? stackTrace, Object? cause})
-
Create an unknown failure
constfactory
- AppFailure.unsupported(String message, {StackTrace? stackTrace, Object? cause})
-
Create an unsupported failure
constfactory
-
AppFailure.validation(String message, {Map<
String, List< ? fieldErrors, StackTrace? stackTrace, Object? cause})String> > -
Create a validation failure
constfactory
Properties
- cause → Object?
-
The original error/exception that caused this failure
final
- code → String?
-
Machine-readable error code (e.g. a GraphQL error type name such as
InsufficientStockError). Optional; most failures are identified by message alone.final - hashCode → int
-
The hash code for this object.
no setterinherited
- message → String
-
Human-readable error message
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- stackTrace → StackTrace?
-
Stack trace from where the failure originated
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toFailure(
[StackTrace? stackTrace]) → AppFailure -
Available on Exception, provided by the ExceptionToFailure extension
Convert this exception to an AppFailure -
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited