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
const
factory
AppFailure.cancellation([String message])
Create a cancellation failure
const
factory
AppFailure.conflict(String message, {String? conflictType, StackTrace? stackTrace, Object? cause})
Create a conflict failure
const
factory
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
const
factory
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
const
factory
AppFailure.notFound(String message, {String? resourceId, String? resourceType, StackTrace? stackTrace, Object? cause})
Create a not found failure
const
factory
AppFailure.platform(String message, {String? code, dynamic details, StackTrace? stackTrace, Object? cause})
Create a platform failure
const
factory
AppFailure.server(String message, {int? statusCode, StackTrace? stackTrace, Object? cause})
Create a server error failure
const
factory
AppFailure.state(String message, {StackTrace? stackTrace, Object? cause})
Create a state failure
const
factory
AppFailure.timeout(String message, {Duration? timeout, StackTrace? stackTrace, Object? cause})
Create a timeout failure
const
factory
AppFailure.type(String message, {StackTrace? stackTrace, Object? cause})
Create a type failure
const
factory
AppFailure.unauthorized(String message, {StackTrace? stackTrace, Object? cause})
Create an unauthorized failure
const
factory
AppFailure.unimplemented(String message, {StackTrace? stackTrace, Object? cause})
Create an unimplemented failure
const
factory
AppFailure.unknown(String message, {StackTrace? stackTrace, Object? cause})
Create an unknown failure
const
factory
AppFailure.unsupported(String message, {StackTrace? stackTrace, Object? cause})
Create an unsupported failure
const
factory
AppFailure.validation(String message, {Map<String, List<String>>? fieldErrors, StackTrace? stackTrace, Object? cause})
Create a validation failure
const
factory

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