Decision Tree
Need exception handling? → Use specific exceptions (bare-exceptions.md) Need conditionals? → Check conditionals.md for patterns Need boolean checks? → See bool.md for comparisons Need type safety? → Apply typing.md guidelines Need debugging? → Use rml-verify.md
Critical Patterns
Don't Catch Bare Exceptions (REQUIRED)
❌ BAD - Hides unintended exceptions
try: risky_operation() except: handle_error()
❌ EQUALLY BAD
try: risky_operation() except Exception: handle_error()
✅ GOOD - Catch specific exceptions
try: risky_operation() except SpecificException: handle_error()
✅ OK if reraising
try: risky_operation() except SpecificException as e: handle_error(e) raise # Reraise the exception
Why: Bare exceptions hide bugs and give false stability.
Resources
Specialized ML coding patterns in this skill:
-
Bare Exceptions: bare-exceptions.md
-
Boolean Comparisons: bool.md
-
Comments: comments.md
-
Conditionals: conditionals.md
-
Control Flow: flow.md
-
Infinite Loops: infinite-loops.md
-
Mutable Defaults: mutable-defaults.md
-
RML Verification: rml-verify.md
-
Side Effects: side-effects.md
-
Type Hints: typing.md
-
Unreachable Code: unreachable-code.md