error-handling

error-handling is a cursor rule for coding agents from mhmdreza-rafiei/agent-tools. It costs 22 tokens per session (432 once invoked), scanned A, original, MIT.

Rules for handling failures in code that performs work such as file access, parsing, network requests, authentication, or database migrations. They require meaningful errors, useful context, and decisions at the outer edges of an application.

In plain words
What is it for?
Use them when designing error types, propagating causes, validating input, logging failures, translating errors into HTTP responses or command-line exit codes, and avoiding empty catches or silent null results.
Why use it?
They prevent failures from being hidden and make problems easier for callers, users, and developers to understand and handle correctly.

Cursor rule

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/mhmdreza-rafiei/agent-tools/error-handling
Clone the repo
git clone --depth 1 https://github.com/mhmdreza-rafiei/agent-tools

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for error-handling

README.md
[![agentmods](https://agentmods.dev/badge/rules/mhmdreza-rafiei/agent-tools/error-handling.svg)](https://agentmods.dev/rules/mhmdreza-rafiei/agent-tools/error-handling)
Your own site
<a href="https://agentmods.dev/rules/mhmdreza-rafiei/agent-tools/error-handling"><img src="https://agentmods.dev/badge/rules/mhmdreza-rafiei/agent-tools/error-handling.svg" alt="Measured on agentmods" height="20"></a>
Per session 22 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 432 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00022 $0.00432
Opus 5 $0.00011 $0.00216
Sonnet 5 $0.00004 $0.00086
Haiku 4.5 $0.00002 $0.00043

Measured 5d ago against content hash c5ba360b3137, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

error-handling scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

rules/code/error-handling.mdc · 48 lines

What it actually says

Error handling

Applies when writing code that can fail (I/O, parsing, network, auth, migrations). Load for features touching failure paths. Not every chat.

No silent catches

  • Never catch and swallow. An empty catch block is a bug waiting to ship.
  • If you catch, you either (a) handle it (recover + continue), (b) rethrow with context, or (c) log + propagate. There is no fourth option.
  • return null on error is silent failure. Prefer returning an error / Result type so the caller knows.

Typed errors

  • Errors are typed and named, not bare strings or generic exceptions. A caller should be able to branch on the error type.
  • Include the operation, the input that failed (redacted if sensitive), and the underlying cause in the error.
  • Wrap, don't replace: raise MyError("parse failed", cause=e) not raise MyError("parse failed").

Errors at the edges

  • Fail fast at trust boundaries (parse, validate, auth). Inside the core, propagate; let the edge (handler, controller, CLI) decide the response.
  • One place translates internal errors to the outside shape (HTTP status, CLI exit code, log line). Don't scatter translation across the core.

Logging

  • Log with context (what, which input, which user/tenant) at the point of the catch, not deep in the core where context is lost.
  • Never log secrets (tokens, passwords, PII). Redact before logging.

Do not

  • Catch Exception / Throwable to keep going — you'll hide bugs.
  • Retry without a backoff and a cap — you'll amplify an outage.
  • Turn a recoverable error into a process crash (or vice versa) without intent.
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 48 lines · 22 tokens per session scan A c5ba360b3137

Subscribe to this mod's changes

error-handling is a cursor rule published in the GitHub repository mhmdreza-rafiei/agent-tools (5 stars, last pushed 18d ago), licensed MIT. It adds 22 tokens to every session and 432 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.