Trong bài viết này, chúng ta sẽ thảo luận về cách xử lý các ngoại lệ trong Python bằng cách sử dụng try. ngoại trừ và cuối cùng là câu lệnh với sự trợ giúp của các ví dụ thích hợp.
Lỗi trong Python có thể có hai loại. e. Lỗi cú pháp và ngoại lệ. Lỗi là sự cố trong chương trình do đó chương trình sẽ dừng thực thi. Mặt khác, các ngoại lệ được đưa ra khi một số sự kiện nội bộ xảy ra làm thay đổi quy trình bình thường của chương trình.
Sự khác biệt giữa Lỗi cú pháp và Ngoại lệ
Lỗi cú pháp. Như tên cho thấy lỗi này là do sai cú pháp trong mã. Nó dẫn đến việc chấm dứt chương trình.
Ví dụ.
Python3
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]18
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]19
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]0
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]1
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]3
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]4
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]5
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]6
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]7
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]00
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]01
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
đầu ra
ngoại lệ. Các ngoại lệ được đưa ra khi chương trình đúng về mặt cú pháp, nhưng mã dẫn đến lỗi. Lỗi này không dừng việc thực thi chương trình, tuy nhiên, nó làm thay đổi luồng bình thường của chương trình
Ví dụ
Python3
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]18
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]04
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]0
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]1
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]08
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]09
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]0
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]04
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]12
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]13
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]15
đầu ra
Trong ví dụ trên đã đưa ra Lỗi ZeroDivision khi chúng tôi đang cố chia một số cho 0
Ghi chú. Exception là lớp cơ sở cho tất cả các ngoại lệ trong Python. Bạn có thể kiểm tra hệ thống phân cấp ngoại lệ.
Tuyên bố thử và ngoại trừ – Bắt ngoại lệ
Các câu lệnh try và except được sử dụng để bắt và xử lý các ngoại lệ trong Python. Các câu lệnh có thể đưa ra các ngoại lệ được giữ bên trong mệnh đề try và các câu lệnh xử lý ngoại lệ được viết bên trong mệnh đề ngoại trừ
Ví dụ. Hãy thử truy cập phần tử mảng có chỉ số nằm ngoài giới hạn và xử lý ngoại lệ tương ứng
Python3
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]16
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]17
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]09
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]0
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]01
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]02
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]03
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]04
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]03
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]06
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]07
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]08
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]09
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]00
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]93
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]94
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]95
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]02
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]97
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9 ________ 100
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]94 ________ 394
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]95 ________ 306
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]97
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]91
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]00
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]95
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
Đầu ra
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]6
Trong ví dụ trên, các câu lệnh có thể gây ra lỗi được đặt bên trong câu lệnh try [câu lệnh in thứ hai trong trường hợp của chúng tôi]. Câu lệnh in thứ hai cố gắng truy cập phần tử thứ tư của danh sách không có ở đó và điều này đưa ra một ngoại lệ. Ngoại lệ này sau đó bị bắt bởi câu lệnh except
Bắt ngoại lệ cụ thể
Một câu lệnh try có thể có nhiều hơn một mệnh đề except để chỉ định các trình xử lý cho các ngoại lệ khác nhau. Xin lưu ý rằng nhiều nhất một trình xử lý sẽ được thực thi. Ví dụ: chúng ta có thể thêm IndexError vào đoạn mã trên. Cú pháp chung để thêm các ngoại lệ cụ thể là –
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]
Ví dụ. Bắt ngoại lệ cụ thể trong Python
Python3
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]97
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]98
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]99
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
________ 2181 ________ 2182
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]5
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]185____2186
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]91
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]189
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]190
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]189
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]192
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]0
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]09
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]12
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]196
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]197
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]06
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]02
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9____100
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]06
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]07
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]08
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]08
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]91
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]12____306
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]12____017
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]20
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]21
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]23
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90____09____100
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]27
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]30
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]00
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]34
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
Đầu ra
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]0
Nếu bạn bình luận trên dòng fun[3], đầu ra sẽ là
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]1
Đầu ra ở trên là như vậy bởi vì ngay khi python cố gắng truy cập giá trị của b, NameError xảy ra.
Hãy thử với khoản Else
Trong python, bạn cũng có thể sử dụng mệnh đề khác trên khối try-ngoại trừ phải có sau tất cả các mệnh đề ngoại trừ. Mã chỉ nhập khối khác nếu mệnh đề thử không đưa ra ngoại lệ
Ví dụ. Thử với mệnh đề khác
Python3
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]36
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]99
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]38
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]181
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]40
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]08
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]91
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]189
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]45
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]0
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]47
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]48
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]49
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]12
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]196
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]197
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]53
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90____590
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]23
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]189
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]00
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]60
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90____063____591
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]189
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]67
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]69
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]70
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]71____303
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]73
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]70
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]73____303
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]73
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
đầu ra
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]0
Cuối cùng từ khóa trong Python
Python cung cấp một từ khóa cuối cùng, từ khóa này luôn được thực thi sau khối try và except. Khối cuối cùng luôn thực thi sau khi khối thử kết thúc bình thường hoặc sau khi khối thử kết thúc do một số ngoại lệ
cú pháp
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
Ví dụ
Python3
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]80
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]82
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]08
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]91
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90_______086
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]0
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]17____212
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]12
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]13
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]92
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]95
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]97
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]23
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]00
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]003
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]006
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]91
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]009
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90____1011
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9____100
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]015
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
đầu ra
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
Tăng ngoại lệ
Câu lệnh raise cho phép lập trình viên buộc một ngoại lệ cụ thể xảy ra. Đối số duy nhất trong lệnh tăng cho biết ngoại lệ sẽ được nêu. Đây phải là một thể hiện ngoại lệ hoặc một lớp ngoại lệ [một lớp bắt nguồn từ Ngoại lệ]
Python3
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]017
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]2
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]08
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]09
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90____1022
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]023____1024
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]025
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]026
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]30
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]90
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]00
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]032
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]8
________ 390 ________ 1022 ________ 1036
Đầu ra của đoạn mã trên sẽ chỉ đơn giản là dòng được in dưới dạng “Một ngoại lệ” nhưng lỗi Thời gian chạy cũng sẽ xảy ra ở dòng cuối cùng do câu lệnh nâng cao ở dòng cuối cùng. Vì vậy, đầu ra trên dòng lệnh của bạn sẽ giống như
try: # statement[s] except IndexError: # statement[s] except ValueError: # statement[s]9
Bài viết này được đóng góp bởi Nikhil Kumar Singh[nickzuck_007]
Vui lòng viết bình luận nếu bạn thấy bất cứ điều gì không chính xác hoặc bạn muốn chia sẻ thêm thông tin về chủ đề thảo luận ở trên