
# Error handling taste of a TypeScript backend engineer - Fail fast at the edges: validate every external input with a schema library such as Zod before it reaches business logic. Confidence: 0.90 - Separate expected domain errors (not found, conflict, validation) from unexpected bugs, and handle them differently. Confidence: 0.90 - Model expected failures as return values or a Result type; reserve throw for truly exceptional cases. Confidence: 0.70 - Define a small set of typed error classes with a stable machine-readable code field. Confidence: 0.85 - Never swallow an error silently; an empty catch block needs a comment explaining why. Confidence: 0.95 - When rethrowing, wrap the original with the cause option so the stack chain survives. Confidence: 0.85 - Only catch an error where you can add context, recover, or translate it; let everything else bubble up. Confidence: 0.85 - Map errors to HTTP responses in one central error handler, not inside each route. Confidence: 0.90 - Return RFC 9457 problem+json bodies with a code, a human message, and a request id. Confidence: 0.75 - Never leak stack traces, SQL, or internal hostnames to API clients. Confidence: 0.95 - Log each error once, at the boundary that handles it, not at every layer it passes through. Confidence: 0.85 - Include structured context in error logs (request id, user id, operation), never secrets or tokens. Confidence: 0.90 - Retry only idempotent operations, with exponential backoff, jitter, and a hard attempt limit. Confidence: 0.90 - Put a timeout on every network call; a missing timeout is a bug. Confidence: 0.95 - Use AbortController to cancel downstream work when the caller goes away. Confidence: 0.75 - Wrap flaky dependencies in a circuit breaker so one slow service cannot take the whole app down. Confidence: 0.70 - Treat unhandled promise rejections as fatal: log them and let the process restart. Confidence: 0.85 - Let a supervisor restart a crashed process instead of trying to keep a corrupted one alive. Confidence: 0.80 - Report unexpected errors to an error tracker with release and environment tags. Confidence: 0.85 - Write tests for failure paths, not only the happy path. Confidence: 0.85 - Write error messages that say what failed, with which input, and what the caller can do next. Confidence: 0.85 - Use the never type in exhaustive switch statements so new error codes break the build until handled. Confidence: 0.75
Describe one change and free AI rewrites this prompt for you.
ChatGPT, Gemini, Claude - copy and paste. For images, use it with Midjourney, DALL-E, or Gemini image mode.
Tip: swap names, colors, or details to make it yours. Shorter prompts often work better - remove lines you don't need.








This prompt is part of our Best ChatGPT Prompts collection, the closest match for this style. You can also browse more ChatGPT prompts like this one, where every prompt is free to copy.
For ideas beyond this topic, see what is trending on the PromptBee homepage.
Gemini doesn't allow auto-fill from links, so paste it yourself - takes 2 seconds:
More ideas for the same category, ready to copy.