برنامهای که با هر ورودیای نمیترکد
در دنیای واقعی کاربرها چیزهای غیرمنتظره وارد میکنند. به خطاهایی که وسط اجرا رخ میدهند استثنا میگویند و پایتون اجازه میدهد آنها را بگیریم و خودمان تصمیم بگیریم چه کنیم:
try:
b = int("salam")
print(b)
except ValueError:
print("it's not a numeric string")
- کدِ ممکن است خطا بدهد داخل
tryمیرود. - اگر خطا رخ داد، اجرای
tryهمانجا قطع میشود و پایتون سراغexceptمیرود. - اگر خطایی رخ نداد،
exceptکلاً نادیده گرفته میشود.
سه قاعدهٔ طلایی:
- همیشه نوع خطا را مشخص کن:
except ValueError:، نهexcept:خالی؛ چون except خالی باگهای واقعی خودت را هم بیصدا پنهان میکند. - با
breakمیشود الگوی «تا درست نگفتی، دوباره بپرس» ساخت؛ درس همین الگو را باwhile Trueنشان میدهد و باforروی تلاشها هم همینقدر کار میکند. try/exceptجای کد درست را نمیگیرد؛ برای خطاهای خارج از کنترل تو است (ورودی کاربر، فایل، شبکه). باگ خودت را با آن پنهان نکن.
درس کامل try و except بلوکهای else و finally را هم توضیح میدهد.