Hướng dẫn how do i ignore exceptions and proceed in python? - làm cách nào để bỏ qua các ngoại lệ và tiếp tục trong python?
Câu trả lời chungTiêu chuẩn "NOP" trong Python là tuyên bố Show
Sử dụng 0 thay vì trần 1 Tránh bắt các ngoại lệ như 2, 3, v.v.Python 2Do ngoại lệ bị ném cuối cùng được ghi nhớ trong Python 2, một số đối tượng liên quan đến tuyên bố ném ngoại lệ đang được giữ trực tiếp vô thời hạn (thực ra, cho đến khi ngoại lệ tiếp theo). Trong trường hợp điều này rất quan trọng đối với bạn và (thông thường) bạn không cần nhớ ngoại lệ cuối cùng, bạn có thể muốn làm như sau thay vì
Điều này xóa ngoại lệ cuối cùng. Python 3Trong Python 3, biến giữ thể hiện ngoại lệ sẽ bị xóa khi thoát khỏi khối 1. Ngay cả khi biến giữ một giá trị trước đây, sau khi nhập và thoát khối 1, nó lại trở lại không xác định.undefined again. Trong Python, chúng tôi xử lý các ngoại lệ bằng cách sử dụng khối Tuyên bố numbers = [12, 1, 0, 45, 56] for number in numbers: print('result is {}'.format(1/number))5 và do đó, không tạo ra giá trị. Tuy nhiên, trình thông dịch Python không bỏ qua câu lệnh PASS và chúng tôi ngăn chặn lỗi cho mã trống trong đó câu lệnh được sử dụng. Khi câu lệnh numbers = [12, 1, 0, 45, 56] for number in numbers: print('result is {}'.format(1/number))1, nó chỉ cần chuyển bất kỳ lỗi nào và không làm thay đổi luồng của chương trình Python. Chúng ta có thể đạt được điều này bằng hai bước sau
Không có khối thử nghiệm thửTrước tiên chúng ta hãy thực hiện logic bằng cách sử dụng một vòng lặp đơn giản. Như bạn có thể thấy ở đầu ra bên dưới, chương trình đã bị sập khi số là 0 numbers = [12, 1, 0, 45, 56] for number in numbers: print('result is {}'.format(1/number)) Đầu ra result is 0.08333333333333333 result is 1.0 --------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) Với một khối Except thửBây giờ chúng ta hãy xem làm thế nào chúng ta có thể bỏ qua một ngoại lệ một cách an toàn numbers = [12,1,0,45,56] for number in numbers: try: print('result is {}'.format(1/number)) except Exception as e: print('Ignoring Exception', e) Đầu ra result is 0.08333333333333333 result is 1.0 Ignoring Exception division by zero result is 0.022222222222222223 result is 0.017857142857142856 Với một khối Except thửBây giờ chúng ta hãy xem làm thế nào chúng ta có thể bỏ qua một ngoại lệ một cách an toàn
Một ngoại lệ là một sự kiện, khi được nâng lên, làm thay đổi luồng của chương trình. Các ngoại lệ là kết quả của chương trình là chính xác về mặt cú pháp nhưng vẫn gây ra lỗi khi thực thi mã. Lỗi này không chia cắt thực thi chương trình mà thay vào đó là thay đổi luồng mặc định của chương trình. Trong Python, chúng tôi xử lý các ngoại lệ bằng cách sử dụng khối numbers = [12, 1, 0, 45, 56] for number in numbers: print('result is {}'.format(1/number))1. Hướng dẫn này sẽ thảo luận về một số phương pháp để bỏ qua một ngoại lệ và tiến hành mã trong Python. Sử dụng câu lệnh pass trong khối try: do_something() except Exception: sys.exc_clear() 1 trong PythonSử dụng câu lệnh 9 trong khối 1 trong PythonMột ngoại lệ là một sự kiện, khi được nâng lên, làm thay đổi luồng của chương trình. Các ngoại lệ là kết quả của chương trình là chính xác về mặt cú pháp nhưng vẫn gây ra lỗi khi thực thi mã. Lỗi này không chia cắt thực thi chương trình mà thay vào đó là thay đổi luồng mặc định của chương trình.
Trong Python, chúng tôi xử lý các ngoại lệ bằng cách sử dụng khối numbers = [12, 1, 0, 45, 56] for number in numbers: print('result is {}'.format(1/number))1. Hướng dẫn này sẽ thảo luận về một số phương pháp để bỏ qua một ngoại lệ và tiến hành mã trong Python.
Tuyên bố numbers = [12, 1, 0, 45, 56] for number in numbers: print('result is {}'.format(1/number))5 và do đó, không tạo ra giá trị. Tuy nhiên, trình thông dịch Python không bỏ qua câu lệnh PASS và chúng tôi ngăn chặn lỗi cho mã trống trong đó câu lệnh được sử dụng. Sử dụng câu lệnh try: do_something() except Exception: sys.exc_clear() 9 trong khối try: do_something() except Exception: sys.exc_clear() 1 trong PythonTrong Python 2, ngoại lệ ném cuối cùng được người phiên dịch nhớ, trong khi nó không xảy ra trong các phiên bản mới hơn của Python.Do đó, câu lệnh 9 là không cần thiết trong các phiên bản được phát hành sau Python 3. Tuyên bố 9 có thể được sử dụng để xóa ngoại lệ cuối cùng của trình thông dịch Python.Mã sau sử dụng câu lệnh 9 trong khối 1 để bỏ qua một ngoại lệ và tiến hành mã trong Python.
Mặc dù hai cách này quản lý để làm cho chương trình chạy mà không có bất kỳ lỗi nào, nhưng không nên bỏ qua tất cả các lỗi trong một chương trình.Tuy nhiên, chỉ bỏ qua một lỗi cụ thể hoặc một số lỗi là một thực tiễn mà hầu hết các lập trình viên làm cho một chương trình lành mạnh. Giới hạn việc sử dụng câu lệnh 9 trong một chương trình cũng cải thiện khả năng đọc và xác định các lỗi của chương trình. |