errors

Error Handling Patterns

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "errors" with this command: npx skills add alicoder001/agent-skills/alicoder001-agent-skills-errors

Error Handling Patterns

Robust error handling for production applications.

Instructions

  1. Custom Error Classes

class AppError extends Error { constructor( public message: string, public statusCode: number = 500, public code?: string ) { super(message); this.name = 'AppError'; Error.captureStackTrace(this, this.constructor); } }

class NotFoundError extends AppError { constructor(resource: string) { super(${resource} not found, 404, 'NOT_FOUND'); } }

class ValidationError extends AppError { constructor(message: string) { super(message, 400, 'VALIDATION_ERROR'); } }

  1. Async Error Handling

// ✅ Async/await with try-catch async function fetchUser(id: string) { try { const response = await api.get(/users/${id}); return response.data; } catch (error) { if (error instanceof AxiosError) { throw new AppError(error.message, error.response?.status); } throw error; } }

// ✅ Promise error handling fetchUser(id) .then(handleSuccess) .catch(handleError);

  1. Express Error Middleware

// Error handler middleware app.use((err: Error, req: Request, res: Response, next: NextFunction) => { console.error(err.stack);

if (err instanceof AppError) { return res.status(err.statusCode).json({ success: false, error: { message: err.message, code: err.code } }); }

res.status(500).json({ success: false, error: { message: 'Internal server error', code: 'INTERNAL_ERROR' } }); });

  1. React Error Boundaries

class ErrorBoundary extends React.Component<Props, State> { state = { hasError: false, error: null };

static getDerivedStateFromError(error: Error) { return { hasError: true, error }; }

componentDidCatch(error: Error, errorInfo: ErrorInfo) { console.error('Error caught:', error, errorInfo); // Log to error reporting service }

render() { if (this.state.hasError) { return <ErrorFallback error={this.state.error} />; } return this.props.children; } }

  1. API Error Response Format

// Standard error response interface ApiError { success: false; error: { message: string; code: string; details?: unknown; }; }

// Example response { "success": false, "error": { "message": "User not found", "code": "USER_NOT_FOUND" } }

  1. Logging

import winston from 'winston';

const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }) ] });

// Usage logger.error('Database connection failed', { error, context });

References

  • Node.js Error Handling

  • React Error Boundaries

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

solid

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

reasoning

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

find-skills

No summary provided by upstream source.

Repository SourceNeeds Review