การดักจับข้อยกเว้นใน Python

ใน Python เมื่อเทียบกับภาษาอื่น ๆ มีสถานการณ์มากมายที่ทำให้เกิดข้อยกเว้น

มาดูรายละเอียดเพิ่มเติมกัน สมมติว่าเรามีรายการ:

pythonlst = [1, 2, 3]

ลองอ้างอิงถึงองค์ประกอบที่ไม่มีอยู่ในรายการ:

pythonprint(lts[4])

หลังจากรันโค้ด จะแสดงข้อผิดพลาด (ข้อยกเว้น):

errorIndexError: list index out of range

หากเราต้องการทำงานต่อไปโดยไม่แสดงข้อยกเว้น ควรดักจับมันด้วยโครงสร้าง try-except มีไวยากรณ์ดังนี้:

pythontry:
  # โค้ดที่อาจทำให้เกิดข้อยกเว้น
except:
  # การจัดการข้อผิดพลาด

ในบล็อก try ควรวางโค้ด ที่อาจมีข้อยกเว้น หาก ในขณะดำเนินการโค้ดนี้เกิด สถานการณ์ข้อยกเว้นขึ้น การดำเนินการ โค้ดจะไม่หยุด แต่จะเปลี่ยนไปทำงานในบล็อก except ในบล็อกนี้ควร กำหนดให้แสดงข้อความที่อธิบาย แก่นแท้ของข้อผิดพลาดที่เกิดขึ้นได้อย่างแม่นยำที่สุด

แต่หากในขณะดำเนินการบล็อก try ไม่เกิดสถานการณ์ข้อยกเว้นใด ๆ โค้ดที่มีประโยชน์ก็จะทำงานปกติ ส่วนโค้ด จากบล็อก except จะไม่ทำงาน

ลองดักจับข้อยกเว้นของเราเมื่ออ้างอิงถึง องค์ประกอบที่ไม่มีอยู่ในรายการกัน สำหรับ การนี้ในบล็อก try ให้วางโค้ดที่ อาจมีข้อผิดพลาด และในบล็อก except ให้กำหนดให้แสดงบนคอนโซลข้อความ 'error: elem is not exist':

pythonlst = [1, 2, 3]
try:
  print(lst[4])
except:
  print('error: elem is not exist')

หลังจากรันโค้ด จะแสดง:

python'error: elem is not exist'

หลังจากศึกษาโครงสร้าง try-except สไตล์โค้ดที่คุณเขียนควรเปลี่ยนไป ตอนนี้ตำแหน่งทั้งหมดที่อาจเกิด สถานการณ์ข้อยกเว้น จำเป็นต้องห่อหุ้ม ด้วย try และในบล็อก except ให้กำหนดการตอบสนองต่อข้อยกเว้นนี้

Задание 1

ถามผู้ใช้สองตัวเลข หาร ตัวหนึ่งด้วยอีกตัวหนึ่ง จับสถานการณ์ข้อยกเว้น การหารด้วยศูนย์

Задание 2

ถามผู้ใช้หนึ่งตัวเลข หา รากที่สองของตัวเลขนี้ จับ สถานการณ์ข้อยกเว้นการหารากที่สอง จากจำนวนลบ

Задание 3

กำหนดรายการ ถามผู้ใช้จำนวนเต็ม รับองค์ประกอบของรายการ โดยใช้เลขลำดับ ที่ผู้ใช้ป้อนเข้ามา จับ สถานการณ์ข้อยกเว้นที่เกิดขึ้น หากผู้ใช้ป้อนตัวเลขนอกช่วง ของรายการ

Задание 4

กำหนดโค้ดต่อไปนี้:

pythonnum = '5'
res = num + 2

print(res)

โค้ดนี้มีปัญหาอะไร? แก้ไข ข้อบกพร่องของมัน

Задание 5

กำหนดโค้ดต่อไปนี้:

pythonlst = [1, 2, 3, 4]

def getElem(iter):
  print(iter[4])

getElem(lst)

โค้ดนี้มีปัญหาอะไร? แก้ไข ข้อบกพร่องของมัน