เราใช้ตัวสร้างข้อยกเว้นที่เจาะจงที่สุดที่เหมาะกับปัญหาเฉพาะของเรามากกว่าที่จะยกข้อยกเว้นทั่วไป เพื่อตรวจจับข้อยกเว้นเฉพาะของเรา เราจะต้องตรวจจับข้อยกเว้นเฉพาะอื่นๆ ทั้งหมดที่จัดคลาสย่อยนั้น
เราควรยกข้อยกเว้นเฉพาะและจัดการกับข้อยกเว้นเฉพาะเดียวกัน
ในการยกข้อยกเว้นเฉพาะ เราใช้คำสั่งการยกดังต่อไปนี้
ตัวอย่าง
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)