store: PR review: paper-dynasty-database#48 — replace broad except Exception with DoesNotExist (APPROVED)

This commit is contained in:
Cal Corum 2026-03-03 19:18:04 -06:00
parent a6e362f1d9
commit 23e8882de8

View File

@ -0,0 +1,28 @@
---
id: 37cca1c8-7fbd-43c3-a289-129b1c530f9f
type: workflow
title: "PR review: paper-dynasty-database#48 — replace broad except Exception with DoesNotExist (APPROVED)"
tags: [pr-reviewer, paper-dynasty-database, fastapi, peewee, python, exception-handling]
importance: 0.4
confidence: 0.8
created: "2026-03-04T01:18:04.266886+00:00"
updated: "2026-03-04T01:18:04.266886+00:00"
---
## PR #48: fix: replace broad except Exception blocks with DoesNotExist (#15)
**Verdict**: APPROVED (could not post — Gitea blocks self-reviews on cal-owned repos)
### Summary
- 71 `except Exception` blocks replaced with `except peewee.DoesNotExist` across 19 router files in `app/routers_v2/`
- `DoesNotExist` imported into each file from `..db_engine`, which re-exports it via `from peewee import *`
- Real DB errors now propagate as 500s instead of being swallowed as 404s
### Key Findings
- **Correctness**: Change is mechanically correct. `DoesNotExist` is peewee's standard exception for `Model.get_by_id()` misses.
- **Import validity**: `db_engine.py` line 8 uses `from peewee import *`, so `DoesNotExist` is available in that namespace. All 19 import additions are valid.
- **Pre-existing minor issue**: A few handlers use `except DoesNotExist as e:` but don't include `e` in their log messages (e.g., `cards.py` `v1_cards_wipe_team`, `results.py` `get_team_results`). Pre-existing, out of scope.
- **No security concerns**. No style violations.
### Note
Gitea raises "approve your own pull is not allowed" when the reviewer owns the repo. Self-review is blocked at the platform level — this is a known limitation for solo repos.