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

สุดท้ายคีย์เวิร์ดใน Python


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

ไวยากรณ์

try:
   # main python Code....
except:
   # It is optional block
   # Code to handle exception
finally:
   # This Code that is always executed

ตัวอย่าง

ในโค้ดด้านล่าง เราเห็นข้อยกเว้นที่เรียกว่า NameError ที่นี่เราสร้างรหัสที่อ้างถึงตัวแปรที่ไม่ได้ประกาศ แม้ว่าจะได้รับการจัดการข้อยกเว้น แต่โค้ดยังคงทำงานในบล็อก "สุดท้าย" รหัสในบล็อก "ในที่สุด" ก็ถูกดำเนินการเช่นกัน

try:
   var1 = 'Tutorials'
   # NameError is raised
   print(var2)

# Handle the exception
except NameError:
   print("variable is not found in local or global scope.")
finally:
   # Regardless of exception generation,
   # this block is always executed
   print('finally block code here')

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

variable is not found in local or global scope.
finally block code here

โดยไม่มีการจัดการข้อยกเว้น

สมมติว่าเราออกแบบโค้ดไม่ให้จัดการกับข้อยกเว้น แม้ว่าบล็อกสุดท้ายจะรันโค้ดสำหรับข้อยกเว้นที่ไม่สามารถจัดการได้

ตัวอย่าง

try:
   var1 = 'Tutorials'
   # NameError is raised
   print(var2)
# No exception handling
finally:
   # Regardless of exception generation,
   # this block is always executed
   print('finally block code here')

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

finally block code here
Traceback (most recent call last):
   File "xxx.py", line 4, in
      print(var2)
NameError: name 'var2' is not defined