Nguyên nhân của một ngoại lệ thường nằm bên ngoài chương trình. Ví dụ: đầu vào không chính xác, thiết bị IO bị trục trặc, v.v. Bởi vì chương trình đột ngột kết thúc khi gặp một ngoại lệ, nó có thể gây ra thiệt hại cho tài nguyên hệ thống, chẳng hạn như các tệp. Do đó, các ngoại lệ phải được xử lý đúng cách để ngăn chặn việc chấm dứt chương trình đột ngột Show Python sử dụng các từ khóa 4 và 5 để xử lý các trường hợp ngoại lệ. Cả hai từ khóa được theo sau bởi các khối thụt lềcú pháp try : #statements in try block except : #executed when error in try block Sự cố gắng. khối chứa một hoặc nhiều câu lệnh có khả năng gặp ngoại lệ. Nếu các câu lệnh trong khối này được thực thi mà không có ngoại lệ, ngoại trừ tiếp theo. khối bị bỏ qua Nếu ngoại lệ xảy ra, luồng chương trình được chuyển sang ngoại lệ. khối. Các câu lệnh trong khối 6 nhằm xử lý nguyên nhân của ngoại lệ một cách thích hợp. Ví dụ: trả về một thông báo lỗi thích hợpBạn có thể chỉ định loại ngoại lệ sau từ khóa 5. Khối tiếp theo sẽ chỉ được thực thi nếu xảy ra ngoại lệ được chỉ định. Có thể có nhiều mệnh đề ngoại trừ với các loại ngoại lệ khác nhau trong một khối thử. Nếu loại ngoại lệ không khớp với bất kỳ khối ngoại lệ nào, nó sẽ không được xử lý và chương trình sẽ kết thúcPhần còn lại của các câu lệnh sau khối ngoại trừ sẽ tiếp tục được thực thi, bất kể có gặp ngoại lệ hay không Ví dụ sau sẽ đưa ra một ngoại lệ khi chúng ta cố gắng chia một số nguyên cho một chuỗi Thí dụ. cố gắng. ngoại trừ khối Sao chép
đầu ra
Bạn có thể đề cập đến một loại ngoại lệ cụ thể trước từ khóa except. Khối tiếp theo sẽ chỉ được thực thi nếu xảy ra ngoại lệ được chỉ định. Có thể có nhiều mệnh đề ngoại trừ với các loại ngoại lệ khác nhau trong một khối thử. Nếu loại ngoại lệ không khớp với bất kỳ khối ngoại lệ nào, nó sẽ không được xử lý và chương trình sẽ kết thúc Thí dụ. Nắm bắt loại lỗi cụ thể Sao chép
đầu ra ________số 8_______ Như đã đề cập ở trên, một khối thử có thể có nhiều khối ngoại trừ. Ví dụ sau sử dụng hai khối except để xử lý hai loại ngoại lệ khác nhau Thí dụ. Nhiều khối ngoại trừ Sao chép
đầu ra
Tuy nhiên, nếu biến b được đặt thành '0', TypeError sẽ gặp phải và được xử lý bằng khối ngoại trừ tương ứng khác và cuối cùngTrong Python, các từ khóa 8 và 9 cũng có thể được sử dụng cùng với mệnh đề try và except. Trong khi khối except được thực thi nếu ngoại lệ xảy ra bên trong khối try, khối other sẽ được xử lý nếu khối try được tìm thấy là không có ngoại lệcú pháp try: #statements in try block except: #executed when error in try block else: #executed if try block is error-free finally: #executed irrespective of exception occured or not Khối cuối cùng bao gồm các câu lệnh sẽ được xử lý bất kể có ngoại lệ xảy ra trong khối thử hay không. Kết quả là, khối try không có lỗi sẽ bỏ qua mệnh đề except và đi vào khối cuối cùng trước khi tiếp tục thực thi phần còn lại của mã. Tuy nhiên, nếu có một ngoại lệ trong khối thử, khối ngoại trừ thích hợp sẽ được xử lý và các câu lệnh trong khối cuối cùng sẽ được xử lý trước khi tiếp tục với phần còn lại của mã Ví dụ dưới đây chấp nhận hai số từ người dùng và thực hiện phép chia của chúng. Nó thể hiện việc sử dụng các khối khác và cuối cùng Thí dụ. thử, ngoại trừ, khác, cuối cùng chặn Sao chép
Lần chạy đầu tiên là một trường hợp bình thường. Các khối khác và cuối cùng được hiển thị vì khối thử không có lỗi đầu ra
Lần chạy thứ hai là trường hợp chia cho 0, do đó, khối except và khối cuối cùng được thực thi, nhưng khối khác không được thực thi đầu ra 0Trong trường hợp chạy thứ ba, một ngoại lệ chưa được phát hiện xảy ra. Khối cuối cùng vẫn được thực hiện nhưng chương trình kết thúc và không thực hiện chương trình sau khối cuối cùng đầu ra 1Thông thường, mệnh đề cuối cùng là nơi lý tưởng để làm sạch các hoạt động trong một quy trình. Ví dụ: đóng tệp bất kể lỗi trong thao tác đọc/ghi. Điều này sẽ được giải quyết trong chương tiếp theo Đưa ra một ngoại lệPython cũng cung cấp từ khóa 0 được sử dụng trong ngữ cảnh xử lý ngoại lệ. Nó gây ra một ngoại lệ được tạo ra một cách rõ ràng. Lỗi tích hợp được nêu ra ngầm. Tuy nhiên, một ngoại lệ tùy chỉnh hoặc tích hợp sẵn có thể bị ép buộc trong quá trình thực thiĐoạn mã sau chấp nhận một số từ người dùng. Khối thử tăng ngoại lệ ValueError nếu số nằm ngoài phạm vi cho phép Thí dụ. Đưa ra một ngoại lệ Sao chép 2đầu ra 3Ở đây, ngoại lệ được nêu ra là loại 1. Tuy nhiên, bạn có thể xác định loại ngoại lệ tùy chỉnh của mình sẽ được nâng lên. Truy cập tài liệu Python để biết thêm về
Python xử lý tất cả các lỗi như thế nào?Thử và Câu lệnh ngoại trừ – Bắt tất cả các ngoại lệ
. 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ừ.
Python xử lý các ngoại lệ tùy chỉnh như thế nào?Trong Python, người dùng có thể xác định các ngoại lệ tùy chỉnh bằng cách tạo một lớp mới . Lớp ngoại lệ này phải được dẫn xuất, trực tiếp hoặc gián tiếp, từ lớp Ngoại lệ tích hợp. Hầu hết các ngoại lệ tích hợp cũng bắt nguồn từ lớp này. |