class CardExpiredError(ValueError):
"""کارت منقضی شده — خطای دامنهای قابلفهم برای لایهٔ بالا."""
def charge(card, amount):
if card.expired:
raise CardExpiredError("کارت منقضی است؛ لطفاً کارت تازه وارد کنید.")
return gateway.charge(card, amount) # خطای فنیِ درگاه همینجا ترجمه میشود
قوانین جریان: except از خاص به عام؛ else فقط مسیر موفقیت؛ finally همیشه (حتی با return وسط try)؛ استثنای گرفتهنشده حبابوار بالا میرود تا مفسر با Traceback متوقفش کند. هرگز except Exception: pass ننویس — یا چیزی را مدیریت کن یا بگذار بالا برود.