← Back to list

error-handling-patterns
by andyngdz
ExoGen Backend
⭐ 2🍴 0📅 Dec 19, 2025
SKILL.md
name: error-handling-patterns description: Use when adding error handling - exception patterns, HTTP codes, domain exceptions
Error Handling Patterns
Use this skill when implementing error handling for features or API endpoints.
Checklist
Exception Handling Rules
- Never use bare
except- always specify exception type - Catch specific exceptions first, then broader ones
- Use domain-specific exception classes with meaningful names
- Log errors before re-raising or returning error responses
Domain-Specific Exceptions
- Create custom exception classes that extend built-in exceptions
- Use meaningful exception names that describe the error condition
- Include helpful error messages with context
class ModelNotFoundError(ValueError):
"""Raised when a requested model is not found."""
pass
class InsufficientMemoryError(RuntimeError):
"""Raised when GPU memory is insufficient for operation."""
pass
API Response Patterns
- Always use Pydantic schemas for responses (never raw dicts)
- Include error details in response schema
- Use appropriate HTTP status codes
HTTP Status Codes
Use the correct status code for each situation:
- 200 - Success (operation completed successfully)
- 400 - Bad Request (invalid input, validation failure)
- 404 - Not Found (resource doesn't exist)
- 409 - Conflict (resource already exists, state conflict)
- 500 - Internal Server Error (unexpected failure)
Example Pattern
from app.services import logger_service
from app.schemas.responses import ErrorResponse, SuccessResponse
logger = logger_service.get_logger(__name__, category='API')
async def generate_image(config: GenerateConfig, db: Session):
try:
result = await service.generate_image(config, db)
return SuccessResponse(data=result)
except ValueError as error:
logger.error(f"Generation failed: {error}")
raise HTTPException(status_code=400, detail=str(error))
except torch.cuda.OutOfMemoryError:
logger.error("Out of GPU memory")
raise HTTPException(status_code=500, detail="Insufficient GPU memory")
except Exception as error:
logger.exception(f"Unexpected error: {error}")
raise HTTPException(status_code=500, detail="Internal server error")
Validation
- Verify all exception types are specific (no bare
except:) - Verify all API responses use Pydantic schemas
- Verify HTTP status codes match the error conditions
- Verify errors are logged before raising/returning
Score
Total Score
65/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
✓最近の活動
3ヶ月以内に更新
+5
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon

