เราใช้ตัวสร้างข้อยกเว้นที่เจาะจงที่สุดที่เหมาะกับปัญหาเฉพาะของเรามากกว่าที่จะยกข้อยกเว้นทั่วไป เพื่อตรวจจับข้อยกเว้นเฉพาะของเรา เราจะต้องตรวจจับข้อยกเว้นเฉพาะอื่นๆ ทั้งหมดที่จัดคลาสย่อยนั้น
เราควรยกข้อยกเว้นเฉพาะและจัดการกับข้อยกเว้นเฉพาะเดียวกัน
ในการยกข้อยกเว้นเฉพาะ เราใช้คำสั่งการยกดังต่อไปนี้
ตัวอย่าง
import sys try: f = float('Tutorialspoint') print f raise ValueError except Exception as err: print sys.exc_info()
ผลลัพธ์
เราได้ผลลัพธ์ดังต่อไปนี้
(<type 'exceptions.ValueError'>, ValueError('could not convert string to float: Tutorialspoint',), <traceback object at 0x0000000002E33748>)
เราสามารถทำให้เกิดข้อผิดพลาดได้แม้ว่าจะมีอาร์กิวเมนต์ดังตัวอย่างต่อไปนี้
ตัวอย่าง
try: raise ValueError('foo', 23) except ValueError, e: print e.args
ผลลัพธ์
เราได้ผลลัพธ์ดังต่อไปนี้
('foo', 23)