تعریف یک استثناء توسط کاربر
در پایتون میتوان یک استثناء سفارشی ایجاد کرد. استثناء سفارشی استثنایی است که توسط کاربر تعریف میشود و باید از کلاس پایه Exception ارث بری کند. برای این کار یک کلاس جداگانه که از کلاس پایه Exception ارث میبرد ایجاد میکنیم. در کد زیر نحوه ایجاد یک استثناء سفارشی نشان داده شده است:
1: class NegativeNumberException(Exception): 2: pass 3: 4: firstNumber = int(input("Enter the first number: ")); 5: secondNumber = int(input("Enter the second number: ")); 6: difference = firstNumber - secondNumber; 7: 8: try: 9: if (difference < 0): 10: raise NegativeNumberException; 11: 12: except NegativeNumberException as error: 13: print("The operation will result to a negative number.");
Enter the first number: 10 Enter the second number: 11 The operation will result to a negative number.
در برنامه بالا قصد ما این است که اگر حاصل تفریق دو عدد، منفی بود، یک استثناء تولید شود. از آنجاییکه تولید یک عدد منفی در هیچ برنامهای یک استثناء محسوب نمیشود، ما به صورت دستی و برای خودمان یک استثناء ایجاد کردهایم. ابتدا از کاربر میخواهیم که دو مقدار را وارد کند (خطوط 5-4). سپس تفاوت دو عدد را محاسبه میکنیم (خط 6). در داخل بلوک try تست میکنیم که آیا حاصل تفریق دو عدد، یک عدد منفی است (خط 19). اگر یک عدد منفی بود سپس با استفاده از کلمه کلیدی raise استثناء NegativeNumberException را تولید می کنیم (خط 10). بعد از تولید استثناء، به وسیله بلوک except پیغام خطای آن را اداره میکنیم (خطوط 13-12).