Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ข้อยกเว้นที่ผู้ใช้กำหนดใน Python พร้อม Examples


Python แสดงข้อผิดพลาดและข้อยกเว้นเมื่อใดก็ตามที่โค้ดทำงานผิดปกติ &การดำเนินการหยุดกะทันหัน Python มีเครื่องมือในการจัดการสถานการณ์ดังกล่าวโดยใช้วิธีการจัดการข้อยกเว้นโดยใช้คำสั่ง try-except ข้อยกเว้นมาตรฐานบางประการที่พบ ได้แก่ ArithmeticError, AssertionError, AttributeError, ImportError เป็นต้น

การสร้างคลาสข้อยกเว้นที่ผู้ใช้กำหนด

ที่นี่เราสร้างคลาสข้อยกเว้นใหม่เช่น User_Error ต้องได้รับข้อยกเว้นจากคลาส Exception ในตัว ไม่ว่าโดยตรงหรือโดยอ้อม มาดูตัวอย่างที่กำหนดซึ่งมี constructor และ display method ภายในคลาสที่กำหนด

ตัวอย่าง

# class MyError is extended from super class Exception
class User_Error(Exception):
   # Constructor method
   def __init__(self, value):
      self.value = value
   # __str__ display function
   def __str__(self):
      return(repr(self.value))
try:
   raise(User_Error("User defined error"))
   # Value of Exception is stored in error
except User_Error as error:
   print('A New Exception occured:',error.value)

ผลลัพธ์

A New Exception occured: User defined error

การสร้างคลาสข้อยกเว้นที่ผู้ใช้กำหนด (การสืบทอดหลายรายการ)

ข้อยกเว้นคลาสที่ได้รับจะถูกสร้างขึ้นเมื่อโมดูลเดียวจัดการกับข้อผิดพลาดที่แตกต่างกันหลายรายการ ที่นี่เราสร้างคลาสพื้นฐานสำหรับข้อยกเว้นที่กำหนดโดยโมดูลนั้น คลาสพื้นฐานนี้สืบทอดมาจากคลาสที่กำหนดโดยผู้ใช้หลายตัวเพื่อจัดการกับข้อผิดพลาดประเภทต่างๆ

ตัวอย่าง

# define Python user-defined exceptions
class Error(Exception):
   """Base class for other exceptions"""
   pass
class Dividebyzero(Error):
   """Raised when the input value is zero"""
   pass
try:
   i_num = int(input("Enter a number: "))
   if i_num ==0:
      raise Dividebyzero
except Dividebyzero:
   print("Input value is zero, try again!")
   print()

ผลลัพธ์

Enter a number: Input value is zero, try again!

การสร้างคลาสข้อยกเว้นที่ผู้ใช้กำหนด (ข้อยกเว้นมาตรฐาน)

ข้อผิดพลาดรันไทม์เป็นคลาสที่มีอยู่แล้วภายในซึ่งจะเพิ่มขึ้นเมื่อใดก็ตามที่ข้อผิดพลาดที่สร้างขึ้นไม่อยู่ในหมวดหมู่ที่กล่าวถึง โปรแกรมด้านล่างอธิบายวิธีใช้ข้อผิดพลาดรันไทม์เป็นคลาสพื้นฐานและข้อผิดพลาดที่ผู้ใช้กำหนดเป็นคลาสที่ได้รับ

ตัวอย่าง

# User defined error
class Usererror(RuntimeError):
   def __init__(self, arg):
      self.args = arg
try:
   raise Usererror("userError")
except Usererror as e:
   print (e.args)

ผลลัพธ์

('u', 's', 'e', 'r', 'E', 'r', 'r', 'o', 'r')

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีที่เราประกาศและใช้ข้อยกเว้นที่ผู้ใช้กำหนดเองใน Python 3.x หรือก่อนหน้านั้น