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:
Exception | Miêu tả |
---|---|
Exception | Lớ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() |
StandardError | Lớp cơ sở của tất cả exception có sẵn ngoại trừ StopIteration và SystemExit. |
ArithmeticError | Lớ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 |
LookupError | Lớ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ó |
EnvironmentError | Lớ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ự |