class ServerException implements Exception { final String message; final int? statusCode; const ServerException({required this.message, this.statusCode}); @override String toString() => 'ServerException: $message (status: $statusCode)'; } class NetworkException implements Exception { final String message; const NetworkException({this.message = 'Network connection failed'}); @override String toString() => 'NetworkException: $message'; } class ValidationException implements Exception { final String message; final Map? errors; const ValidationException({required this.message, this.errors}); @override String toString() => 'ValidationException: $message'; } class NotFoundException implements Exception { final String message; const NotFoundException({this.message = 'Resource not found'}); @override String toString() => 'NotFoundException: $message'; }