Hướng dẫn does python try require except? - python thử yêu cầu ngoại trừ?
Có một số cách để làm điều này. Show
Tuy nhiên, sự lựa chọn của ví dụ có một giải pháp đơn giản không bao gồm trường hợp chung. Cụ thể cho ví dụ:Thay vì
Làm cái này:
Đây là một đối số cụ thể cho 5. Bạn có thể thấy sự trợ giúp trên nó bằng cách thực hiện những điều sau đây và bạn cũng sẽ thấy nó cũng có thể cho phép chức năng về lỗi.
Vì điều này chỉ bao gồm trường hợp hẹp của ví dụ, tôi sẽ chứng minh thêm cách xử lý điều này nếu các đối số từ khóa đó không tồn tại. Cách tiếp cận chungVì những điều trên chỉ bao gồm trường hợp hẹp của ví dụ, tôi sẽ chứng minh thêm cách xử lý điều này nếu các đối số từ khóa đó không tồn tại. Mới trong Python 3.4:Bạn có thể nhập trình quản lý bối cảnh 6:
Nhưng chỉ đàn áp ngoại lệ cụ thể nhất:
Bạn sẽ âm thầm bỏ qua một 7:
Từ các tài liệu:
Lưu ý rằng 6 và 7 chỉ có sẵn trong Python 3.Nếu bạn cũng muốn mã của mình hoạt động trong Python 2, hãy xem phần tiếp theo: Python 2 & 3:
Đối với mã tương thích Python 2, 0 là cách chính xác để có một tuyên bố không có op. Nhưng khi bạn làm một cái trần 1, điều đó cũng giống như làm 2 bao gồm 3, 4 và 5, và nói chung, bạn không muốn bắt những thứ đó.Trong thực tế, bạn nên cụ thể trong việc đặt tên ngoại lệ nhất có thể. Đây là một phần của hệ thống phân cấp ngoại lệ Python (2) và như bạn có thể thấy, nếu bạn bắt được các ngoại lệ chung hơn, bạn có thể che giấu các vấn đề mà bạn không mong đợi:
Bạn có thể muốn bắt một Oserror ở đây, và có lẽ ngoại lệ mà bạn không quan tâm là nếu không có thư mục. Chúng ta có thể nhận được số lỗi cụ thể đó từ thư viện 6 và reraise nếu chúng ta không có điều đó:
Lưu ý, một mức tăng trần làm tăng ngoại lệ ban đầu, đó có lẽ là những gì bạn muốn trong trường hợp này. Được viết chính xác hơn, vì chúng ta không thực sự cần phải rõ ràng 0 với mã trong xử lý ngoại lệ: Sử dụng thử mà không ngoại trừ (bỏ qua các ngoại lệ) trong Python #Sử dụng câu lệnh 0
Chúng tôi đã sử dụng một câu lệnh 0 để bỏ qua một ngoại lệ.Câu lệnh Mã trong khối 2 có thể tăng bất kỳ ngoại lệ nào và nó sẽ được chuyển đến khối 1. 1Câu lệnh PASS không làm gì và được sử dụng khi bắt buộc phải có câu lệnh nhưng chương trình không yêu cầu hành động. Nói chung, sử dụng tuyên bố 1 mà không chỉ định rõ ràng loại ngoại lệ được coi là một thực tiễn xấu.Điều này chủ yếu là do việc bắt bất kỳ lỗi nào làm cho mã của bạn ít trực quan hơn và khó đọc hơn. Một cách tiếp cận khác là phạm vi khối 1 đến một lỗi cụ thể. 2Khối 1 chỉ xử lý các ngoại lệ 7.Nếu một ngoại lệ của bất kỳ loại nào khác được nâng lên, khối 1 sẽ không xử lý nó.Ví dụ: mã sau đây tăng 9 trong khối 2 và làm hỏng chương trình. 3Bạn cũng có thể chỉ định nhiều lớp ngoại lệ trong khối 1. 4Khối Nếu bạn phải chỉ định nhiều lớp ngoại lệ, hãy đảm bảo bọc chúng trong ngoặc đơn. Bạn có thể xem tất cả các lớp ngoại lệ trong Python trong danh sách phân cấp ngoại lệ trong các tài liệu. Bạn có cần ngoại trừ sau khi thử Python?Hãy thử: Mã với (các) ngoại lệ để bắt. Nếu một ngoại lệ được nâng lên, nó sẽ nhảy thẳng vào khối ngoại trừ. Ngoại trừ: Mã này chỉ được thực thi nếu xảy ra ngoại lệ trong khối thử. Khối ngoại trừ được yêu cầu với một khối thử, ngay cả khi nó chỉ chứa câu lệnh PASS.The except block is required with a try block, even if it contains only the pass statement.
Có cần câu tuyên bố ngoại trừ không?Ngoại trừ câu lệnh chạy mã theo câu lệnh của thử.Nếu mã này không thực thi thành công, chương trình sẽ dừng ở dòng gây ra lỗi và mã ngoại trừ mã sẽ chạy.Khối thử cho phép bạn kiểm tra một khối mã cho lỗi.. If this code does not execute successfully, the program will stop at the line that caused the error and the “except” code will run. The try block allows you to test a block of code for errors.
Chúng ta có thể sử dụng thử với ngoại trừ trong Python không?Tuyên bố thử hoạt động như sau.Đầu tiên, mệnh đề thử (câu lệnh giữa thử và ngoại trừ từ khóa) được thực thi.Nếu không xảy ra ngoại lệ, mệnh đề trừ bị bỏ qua và thực hiện câu lệnh thử được kết thúc.Nếu một ngoại lệ xảy ra trong quá trình thực hiện mệnh đề thử, phần còn lại của mệnh đề sẽ bị bỏ qua.If no exception occurs, the except clause is skipped and execution of the try statement is finished. If an exception occurs during execution of the try clause, the rest of the clause is skipped.
Tôi có thể sử dụng gì thay vì thử ngoại trừ trong Python?Nếu tình huống thỏa mãn các điều kiện trên, bạn không phải sử dụng thử ... ngoại trừ ... để xử lý các ngoại lệ.Thay vào đó, Bối cảnh thư viện tích hợp Python cung cấp một chức năng gọi là triệt tiêu để xử lý thanh lịch hơn.the Python built-in library contextlib provides a function called suppress to handle this more elegantly. |