Standard Exception trong Python



Python cung cấp hai đặc điểm quan trọng là Xử lý ngoại lệ (Exception Handling) và Assertion để xử lý bất kỳ lỗi không mong đợi nào trong các chương trình Python của bạn và để thêm khả năng debug tới các chương trình đó.

Chương này chúng ta trước hết giới thiệu qua về các Exception chuẩn có trong Python. Bảng dưới đây liệt kê tất cả ngoại lệ chuẩn có sẵn trong Python:

ExceptionMiêu tả
ExceptionLớp cơ sở (base class) của tất cả các ngoại lệ
StopIterationĐược tạo khi phương thức next() của một iterator không trỏ tới bất kỳ đối tượng nào
SystemExitĐược tạo bởi hàm sys.exit()
StandardErrorLớp cơ sở của tất cả exception có sẵn ngoại trừ StopIteration và SystemExit.
ArithmeticErrorLớp cơ sở của tất cả các lỗi xảy ra cho phép tính số học
OverflowErrorĐược tạo khi một phép tính vượt quá giới hạn tối đa cho một kiểu số
FloatingPointErrorĐược tạo khi một phép tính số thực thất bại
ZeroDivisonErrorĐược tạo khi thực hiện phép chia cho số 0 với tất cả kiểu số
AssertionErrorĐược tạo trong trường hợp lệnh assert thất bại
AttributeErrorĐược tạo trong trường hợp tham chiếu hoặc gán thuộc tính thất bại
EOFErrorĐược tạo khi không có input nào từ hàm raw_input() hoặc hàm input() và tới EOF (viết tắt của end of file)
ImportErrorĐược tạo khi một lệnh import thất bại
KeyboardInterruptĐược tạo khi người dùng ngắt việc thực thi chương trình, thường là bởi nhấn Ctrl+c
LookupErrorLớp cơ sở cho tất cả các lỗi truy cứu
IndexErrorĐược tạo khi một chỉ mục không được tìm thấy trong một dãy (sequence)
KeyErrorĐược tạo khi key đã cho không được tìm thấy trong Dictionary
NameErrorĐược tạo khi một định danh không được tìm thấy trong local hoặc global namespace
UnboundLocalErrorĐược tạo khi cố gắng truy cập một biến cục bộ từ một hàm hoặc phương thức nhưng mà không có giá trị nào đã được gán cho nó
EnvironmentErrorLớp cơ sở cho tất cả ngoại lệ mà xuất hiện ở ngoài môi trường Python
IOErrorĐược tạo khi hoạt động i/o thất bại, chẳng hạn như lệnh print hoặc hàm open() khi cố gắng mở một file không tồn tại
OSErrorĐược do các lỗi liên quan tới hệ điều hành
SyntaxErrorĐược tạo khi có một lỗi liên quan tới cú pháp
IndentationErrorĐược tạo khi độ thụt dòng code không được xác định hợp lý
SystemErrorĐược tạo khi trình thông dịch tìm thấy một vấn đề nội tại, nhưng khi lỗi này được bắt gặp thì trình thông dịch không thoát ra
SystemExitĐược tạo khi trình thông dịch thoát ra bởi sử dụng hàm sys.exit(). Nếu không được xử lý trong code, sẽ làm cho trình thông dịch thoát
TypeErrorĐược tạo khi một hoạt động hoặc hàm sử dụng một kiểu dữ liệu không hợp lệ
ValueErrorĐược tạo khi hàm đã được xây dựng sẵn có các kiểu tham số hợp lệ nhưng các giá trị được xác định cho tham số đó là không hợp lệ
RuntimeErrorĐược tạo khi một lỗi đã được tạo ra là không trong loại nào
NotImplementedErrorĐược tạo khi một phương thức abstract, mà cần được triển khai trong một lớp được kế thừa, đã không được triển khai thực sự