← Back to list

error-handling-patterns
by Kaakati
Enterprise-grade Rails development workflow with multi-agent orchestration, beads task tracking, and quality gates. Generic and portable across any Rails project.
⭐ 2🍴 0📅 Jan 24, 2026
SKILL.md
name: "Error Handling Patterns" description: "Exception classes, failure classes, Either type, and error handling strategies" version: "1.0.0"
Error Handling Patterns
Exception Classes (Data Layer)
abstract class AppException implements Exception {
final String message;
final String? code;
const AppException({required this.message, this.code});
}
class ServerException extends AppException {
final int? statusCode;
const ServerException({
required super.message,
super.code,
this.statusCode,
});
}
class CacheException extends AppException {
const CacheException({required super.message, super.code});
}
class NetworkException extends AppException {
const NetworkException({
super.message = 'No internet connection',
super.code,
});
}
Failure Classes (Domain Layer)
import 'package:equatable/equatable.dart';
abstract class Failure extends Equatable {
final String message;
const Failure(this.message);
@override
List<Object> get props => [message];
}
class ServerFailure extends Failure {
const ServerFailure(super.message);
}
class CacheFailure extends Failure {
const CacheFailure(super.message);
}
class NetworkFailure extends Failure {
const NetworkFailure([super.message = 'No internet connection']);
}
Either Type Usage
import 'package:dartz/dartz.dart';
// Repository returns Either<Failure, Entity>
Future<Either<Failure, User>> getUser(String id) async {
try {
final model = await provider.fetchUser(id);
return Right(model.toEntity());
} on ServerException catch (e) {
return Left(ServerFailure(e.message));
} on NetworkException {
return Left(NetworkFailure());
}
}
// Controller handles Either result
final result = await getUserUseCase('123');
result.fold(
(failure) => _handleError(failure),
(user) => _user.value = user,
);
Score
Total Score
60/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
✓説明文
100文字以上の説明がある
+10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon