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

การ Raise ข้อยกเว้น (Raising Exceptions) ใน Python

คุณสามารถ raise ข้อยกเว้นได้หลายวิธีโดยใช้คำสั่ง raise ไวยากรณ์ทั่วไปสำหรับคำสั่ง raise คือดังนี้:

ไวยากรณ์ (Syntax)

raise [Exception [, args [, traceback]]]

ที่นี่ Exception คือประเภทของข้อยกเว้น (เช่น NameError) และ argument คือค่าสำหรับอาร์กิวเมนต์ข้อยกเว้น อาร์กิวเมนต์เป็นทางเลือก หากไม่ระบุ อาร์กิวเมนต์ข้อยกเว้นคือ None

อาร์กิวเมนต์สุดท้าย traceback ก็เป็นทางเลือกเช่นกัน (และนادرๆ ใช้ในทางปฏิบัติ) และหากมีอยู่ คืออ็อบเจ็กต์ traceback ที่ใช้สำหรับข้อยกเว้น

ตัวอย่าง

ข้อยกเว้นอาจเป็น สตริง คลาส หรืออ็อบเจ็กต์ ข้อยกเว้นส่วนใหญ่ที่ Python core raise เป็นคลาส พร้อมอาร์กิวเมนต์ที่เป็นอินสแตนซ์ของคลาส การกำหนดข้อยกเว้นใหม่นั้นง่ายและทำได้ดังนี้:

def functionName(level):
    if level < 1:
        raise "Invalid level!", level
        # โค้ดด้านล่างนี้จะไม่ถูกดำเนินการ
        # หากเรา raise ข้อยกเว้น

หมายเหตุ - เพื่อจับข้อยกเว้น Klaus "except" ต้องอ้างถึงข้อยกเว้นเดียวกันที่โยน ไม่ว่าจะเป็น class object หรือสตริงง่ายๆ ตัวอย่างเช่น เพื่อจับข้อยกเว้นข้างต้น เราต้องเขียน except clause ดังนี้:

try:
    Business Logic here...
except "Invalid level!":
    Exception handling here...
else:
    Rest of the code here...