บล็อก else ในการดักจับข้อยกเว้นใน Python
ในโครงสร้าง try-except ยังสามารถเพิ่มบล็อก else ได้อีกด้วย จุดสำคัญคือโค้ดที่วางอยู่ในบล็อก else จะทำงานหากก่อนหน้านั้นใน try-except ไม่มีการดักจับข้อยกเว้นใดๆ เลย
สมมติว่าเรามีรายการ:
lst = [1, 2, 3]
ในโครงสร้าง try-except เราจะเขียนการดักจับข้อยกเว้นสำหรับสมาชิกรายการที่ไม่มีอยู่:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
ตอนนี้ ขอให้ระบุในบล็อก else ให้แสดงผลรวมของสมาชิกรายการทั้งหมด:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
หากโค้ดในบล็อก try อ้างอิงถึงสมาชิกที่ไม่มีอยู่ ข้อความแสดงข้อผิดพลาดจะปรากฏในคอนโซล:
'error: elem is not exist'
ตอนนี้ ให้กำหนดในบล็อก try ให้แสดงผลสมาชิกที่แน่นอนว่าอยู่ในรายการ:
try:
print(lst[0])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
หลังจากดำเนินการโค้ดเสร็จ ตัวเลขสองตัวจะปรากฏในคอนโซล: สมาชิกที่กำหนดใน try และผลรวมของสมาชิกรายการทั้งหมด:
1
6
กำหนดรายการ:
lst = [1, 2, 3]
เขียนโค้ดเพื่อดักจับข้อยกเว้นที่เกี่ยวข้องกับการหารด้วยศูนย์ ในกรณีที่ข้อยกเว้นนี้ไม่เกิดขึ้น ให้แสดงความยาวของรายการ