avoid catching everything. 4. **Propagate what you cannot handle** — let it reach a handler that can. 5. **Custom exceptions carry context** — include relevant data in the exception object. 6. **Never silently ignore errors** — every language community agrees on this.