Skip to content

ALL-ERRO0002 · evidence

This page continues ALL-ERRO0002 directly from its source docstring. Read its implementation.

Each finding names the declaration, the handler clause, and the raise that arrives with no cause. The value is the number of raises that drop what they replace.

A raise that states a cause marker or names the caught failure itself is carrying the original and is left alone. Deliberately breaking the chain with raise ... from None says so in the source, and it reads as carried for exactly that reason. A bare re-raise names no new error at all and hands the original straight on, so it is never judged, and neither is a raise outside a handler because it replaces nothing. A handler that binds no name is judged on the markers alone, since there is no name a raise there could carry. Only a callable is judged, because a type reaches every handler it owns through the callable holding it and would otherwise report the same raise twice. handlers names the words a language opens a handler clause with, raises the words it raises with, and causes the markers that carry one, so a language spelling any of them differently is configured rather than reimplemented.

  • Generalizes Ruff B904 raise-without-from-inside-except. Open reference
  • Cites “PEP 3134, Exception Chaining and Embedded Tracebacks”. Open reference
  • Cites “MDN Web Docs”, the Error cause option. Open reference
  • Cites “The Go documentation”, error wrapping with the %w verb. Open reference
  • Cites “Effective Java”, item 73, throw exceptions appropriate to the abstraction