پرسش

چطور چندین استثناء رو توی یک خط و در یک بلوک except بگیریم؟

How to catch multiple exceptions in one line (except block)

چطور می‌تونم چندین نوع استثناء (Exception) رو توی یک خط و در یک بلوک except مدیریت کنم؟ مثلاً اگر بخوام هم ValueError و هم TypeError رو همزمان بگیرم، چطور باید این کار رو انجام بدم؟

1403/05/29
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

برای اینکه چندین نوع استثناء رو توی یک خط بگیری، می‌تونی از پرانتز استفاده کنی و اون‌ها رو به صورت یه تاپل (tuple) به بلوک except بدی. اینجوری می‌تونی چندین استثناء رو با هم مدیریت کنی. مثلاً اگر بخوای هم ValueError و هم TypeError رو بگیری، کد به این شکل می‌شه:

try:
    # Your code here
except (ValueError, TypeError) as e:
    # Handle the exception
    print(f"An error occurred: {e}")

در اینجا اگر هر کدوم از استثناء‌های ValueError یا TypeError رخ بده، کد داخل بلوک except اجرا می‌شه و خطای مربوطه رو به صورت متغیر e می‌گیری. با این روش دیگه نیازی نیست که چندین بلوک except جداگانه برای هر نوع استثناء بنویسی، و کد تو مرتب‌تر و خواناتر می‌شه.

این روش هم از نظر عملکردی و هم از نظر نگهداری کد، بهترین راه برای مدیریت چندین استثناء هست و در موقعیت‌های زیادی می‌تونه به کارت بیاد.

پاسخ: 1403/05/29
آخرین آپدیت: 1403/07/16