استثناها در پایتون – به زبان ساده


در این مطلب به استثناها در پایتون و در واقع استثناهای سفارشی پایتون که توسط کاربر تعریف میشوند پرداخته شده است.
استثناها در پایتون
در این مطلب، روش تعریف استثناها در پایتون بسته به نیازهای کاربر، بیان شده است. پایتون دارای استثناهای توکار متعددی است که برنامه را مجبور میکند هنگامی که اشتباهی اتفاق میافتد در خروجی پیغام خطا بدهد. اگرچه، گاهی ممکن است نیاز به ساخت استثناهای سفارشی باشد که هدف کاربر را تامین میکنند.
در پایتون، کاربران میتوانند این استثناها را با ساخت یک کلاس جدید تعریف کنند. این کلاس استثنا باید به طور مستقیم یا غیرمستقیم از کلاس Exception مشتق شود. بسیاری از استثناهای توکار نیز از این کلاس مشتق شدهاند.
در اینجا، یک استثنای تعریف شده توسط کاربر که CustomError نامیده میشود ساخته شده است که از کلاس Exception مشتق میشود. این استثنای جدید میتواند مانند دیگر استثناها با استفاده از دستور raise با یک پیغام خطای انتخابی نمایش داده شود. هنگامی که کاربر در حال توسعه یک برنامه بزرگ است، بهتر است که همه استثناهای تعریف شده توسط کاربر که در برنامه نمایش داده شده است، در فایلهای جداگانهای قرار بگیرند. بسیاری از ماژولهای استاندارد این کار را انجام میدهند. آنها استثناهای خود را به صورت جداگانه به عنوان exceptions.py یا errors.py تعریف میکنند (به طور کلی، اما نه همیشه).
کلاس استثنای تعریف شده توسط کاربر، میتواند هر چیزی که یک کلاس نرمال میتواند انجام بدهد را پیادهسازی کند. بیشتر پیادهسازیها، یک کلاس پایه مبنا تعریف میکنند و دیگر کلاسهای استثنا را از این کلاس مبنا مشتق میکنند. اما، کاربر به طور کلی آنها را ساده و دقیق میسازد. این مفهوم در مثال بیان شده در بخش بعدی از مطلب استثناها در پایتون شفاف شده است.
مثالی از استثناهای تعریف شده توسط کاربر در پایتون
در این مثال، چگونگی نمایش داده شدن استثناها در پایتون و ضبط خطاها در این زبان برنامهنویسی به وسیله استثناهای تعریف شده توسط کاربر نمایش داده شده است. این برنامه از کاربر درخواست ورود یک عدد را دارد، تا هنگامی که عدد ذخیره شده را به درستی حدس بزنند.
برای کمک به کاربر جهت حدس زدن، راهنماهایی نیز فراهم شده است که به کاربر میگوید حدس آنها از عدد ذخیره شده در حافظه بزرگتر یا کوچکتر است.
خروجی حاصل از اجرای این برنامه به صورت زیر است.
Enter a number: 12 This value is too large, try again! Enter a number: 0 This value is too small, try again! Enter a number: 8 This value is too small, try again! Enter a number: 10 Congratulations! You guessed it correctly.
در اینجا، یک کلاس پایه که Error نام دارد، تعریف شده است. دو استثنای دیگر، (ValueTooSmallError و ValueTooLargeError) که توسط برنامه نمایش داده شدند، از این کلاس مشتق شدهاند.
این یک راهکار استاندارد برای تعریف استثناهای تعریف شده توسط کاربر در زبان برنامه نویسی پایتون محسوب میشود، اما تنها راه موجود برای این کار نیست.