Video: From C to Python by Ross Rheingans-Yoo 2025
Một chiến lược xử lý các ngoại lệ trong Python là cung cấp các mệnh đề ngoại lệ cụ thể cho tất cả các ngoại lệ đã biết và các khoản trừ chung để xử lý các ngoại lệ không xác định. Kiểm tra hệ thống phân cấp ngoại lệ mà Python sử dụng. Khi xem biểu đồ này, BaseException là ngoại lệ trên cùng. Hầu hết các ngoại lệ đều có nguồn gốc từ ngoại lệ. Khi làm việc thông qua các lỗi toán học, bạn có thể sử dụng chung ArithmeticError hoặc ngoại lệ cụ thể hơn ZeroDivisionError.
Python đánh giá trừ các khoản theo thứ tự mà chúng xuất hiện trong tệp mã nguồn. Mệnh đề đầu tiên được kiểm tra đầu tiên, mệnh đề thứ hai được kiểm tra lần thứ hai, v.v … Các bước sau giúp bạn kiểm tra một ví dụ thể hiện tầm quan trọng của việc sử dụng trật tự ngoại lệ chính xác. Trong trường hợp này, bạn thực hiện các tác vụ dẫn đến lỗi toán học.
-
Mở một cửa sổ Python File.
Bạn thấy một trình soạn thảo, trong đó bạn có thể gõ mã ví dụ.
-
hãy thử: Value1 = int (input ("Nhập số đầu tiên:")) Value2 = int (input (" Nhập số thứ hai: ")) Output = Value1 / Value2 except ValueError: print (" Bạn phải nhập một số nguyên! ") Trừ KeyboardInterrupt: print (" Bạn đã nhấn Ctrl + C! ") Ngoại trừ ArithmeticError: print (" An undefined ") trừ ZeroDivisionError: print (" Đã cố chia đôi bằng số! ") else: print (Output)
Mã bắt đầu bằng cách lấy hai đầu vào: Value1 và Value2. Hai điều đầu tiên ngoại trừ các khoản xử lý đầu vào bất ngờ. Hai thứ hai trừ các điều khoản xử lý ngoại lệ toán học, chẳng hạn như chia cho số không. Nếu mọi thứ trở nên tốt với ứng dụng, mệnh đề else sẽ thực hiện, nó sẽ in kết quả của thao tác.
-
Bạn thấy một cửa sổ Python Shell mở. Ứng dụng yêu cầu bạn gõ số đầu tiên.
Loại Hello và nhấn Enter.
-
Như mong đợi, Python hiển thị thông báo ngoại lệ ValueError. Tuy nhiên, nó luôn luôn trả tiền để kiểm tra các vấn đề tiềm năng.
Chọn Run → Run Module một lần nữa.
-
Bạn thấy một cửa sổ Python Shell mở. Ứng dụng yêu cầu bạn gõ số đầu tiên.
Loại 8 và nhấn Enter.
-
Ứng dụng yêu cầu bạn nhập số thứ hai.
Nhập 0 và nhấn Enter.
-
Bạn thấy thông báo lỗi cho ngoại lệ ArithmeticError. Những gì bạn thực sự thấy là ngoại lệ ZeroDivisionError bởi vì nó cụ thể hơn so với ngoại lệ ArithmeticError.
Đảo ngược thứ tự của hai ngoại lệ để chúng trông như sau:
-
ngoại trừ ZeroDivisionError: print ("Đã cố chia đôi bằng số!") Ngoại trừ ArithmeticError: print ("Đã xảy ra lỗi toán học không xác định") > Thực hiện các bước từ 5 đến 7 lần nữa.
Lần này, bạn thấy thông báo ngoại lệ ZeroDivisionError vì các ngoại lệ xuất hiện theo trật tự chính xác.
-
Thực hiện các bước từ 5 đến 7 lần nữa, nhưng gõ số 2 cho số thứ hai thay vì 0.
Thời gian này, ứng dụng cuối cùng báo cáo giá trị đầu ra là 4. 0.
-
Chú ý rằng đầu ra là một kết xuất- điểm giá trị. Division kết quả trong một giá trị điểm nổi trừ khi bạn chỉ định rằng bạn muốn một số nguyên đầu ra bằng cách sử dụng toán tử chia sàn (//).