Xử lý không khí cho phép chúng tôi để tập lệnh tiếp tục chạy, ngay cả khi có lỗi.
Hãy thử một ví dụ để cho bạn thấy cách chúng tôi có thể xử lý lỗi và Python.
Giả sử chúng tôi muốn tạo một chương trình cho phép chúng tôi lấy thông tin đầu vào của người dùng.
Giả sử rằng chúng tôi yêu cầu người dùng nhập chữ H, vì vậy chúng tôi sử dụng dấu nhắc nhập và nói, H của bạn là gì?
Và ở đây, tất cả những gì chúng ta sẽ làm là in chữ H.
Chương trình đẹp và đơn giản.
Nếu tôi chạy cái này.
Và tôi gõ vào, giả sử, mười.
Của bạn đây.
Mọi thứ đang hoạt động.
Nhưng điều gì sẽ xảy ra nếu tôi không nhập một số và tôi đi như thế này?
Chà, điều đó vẫn hoạt động.
Nhưng đó có phải là những gì tôi muốn làm với chương trình của mình không?
Có lẽ tôi muốn nhập độ tuổi và tính toán xem họ có thể chơi trò chơi này hay không, cho dù họ từ 18
tuổi trở lên.
Làm thế nào chúng ta có thể khắc phục điều này?
Chà, một điều chúng ta có thể làm là chỉ cần gói nó trong một int, phải không?
Vì vậy, chúng tôi chuyển đổi bất cứ thứ gì người dùng cung cấp cho chúng tôi thành một số nguyên để nếu tôi chạy điều này.
Và tôi gõ cái này.
Ồ, tôi gặp lỗi một lỗi giá trị không hợp lệ theo nghĩa đen cho int.
Tôi đang cố gắng chuyển đổi.
Đây là một số nguyên, nhưng nó cho tôi biết đó là một lỗi.
Tôi không thể làm điều đó.
Vì vậy, làm thế nào chúng ta có thể khắc phục điều này với xử lý lỗi trong Python?
Chúng ta có thể làm theo cách này.
Chúng tôi có ba vòng, chúng tôi có từ khóa tri cho biết, Này, tôi muốn bạn thử đoạn mã này và chúng tôi phải đảm bảo rằng chúng tôi
đã thụt lề cho nó.
Vì vậy, chúng tôi thử đoạn mã này.
Bây giờ bất cứ điều gì xảy ra bên trong khối bộ lạc.
Tôi có thể xử lý.
Xem xử lý đến từ đâu.
AYRES Với từ khóa ngoại trừ.
Và ngoại trừ.
Nói, Này.
Nếu bất cứ điều gì ở đây trong khối tri, nếu có gì đó phát ra, tôi muốn bạn nói điều gì đó.
Vì vậy, thay vì có luồng khí đỏ này thoát ra khỏi chương trình, hãy làm điều gì đó khác.
Làm cái này.
Vì vậy, tôi sẽ nói.
In.
Vui lòng nhập một số.
Hãy xem điều gì sẽ xảy ra bây giờ.
Nếu tôi bấm Chạy.
Tuổi của tôi là bao nhiêu?
Tôi sẽ chỉ viết vô nghĩa.
Và hãy nhìn vào điều mà tôi nhận được.
Vui lòng nhập một số.
Tôi đang xử lý các lỗi của mình ở đây bằng cách gói tất cả mã của tôi trong một khối thử để tôi có thể chỉ cần sao chép dán,
thêm toàn bộ tệp của mình vào đây, đặt nó vào bên trong khối thử Và điều gì sẽ xảy ra là thay vì chương trình
của tôi được phát sóng trước đó chương trình của tôi bị lỗi, nó sẽ chạy mã này và sau đó nó
sẽ nói, này, nếu trong khối này, có bất kỳ điều gì xảy ra, chúng tôi sẽ bắt nó ở đây với khối chấp nhận và tôi có thể nghe thấy.
Làm bất cứ điều gì tôi muốn.
Trong trường hợp của tôi, tôi có thể nói, Này, vui lòng nhập số của chúng tôi.
Nhưng chúng ta có vấn đề ở đây, phải không?
Chương trình vừa kết thúc và chúng tôi muốn nó tiếp tục chạy.
Tôi phải nhấp vào chạy một lần nữa và yêu cầu H một lần nữa.
Vì vậy, làm thế nào chúng tôi có thể đảm bảo rằng chúng tôi tiếp tục chạy nó cho đến khi, người dùng thực sự nhập một cái gì đó
hợp lệ?
Chà, chúng tôi đã thấy điều này trước đây.
Chúng ta có thể làm một vòng lặp while và nói while true.
Ron này.
Và nếu điều này hiệu quả.
Chà, chúng ta sẽ hy vọng nhận được h. Hãy xem nếu tôi nhấp vào chạy thì H của tôi sẽ nói như thế nào.
Không.
Vui lòng nhập số của bạn.
Bận bao nhiêu tuổi?
Hãy thử phá vỡ nó một lần nữa.
Vui lòng nhập một số.
Được rồi, tốt thôi.
Tuổi tôi là mười.
Của bạn đây.
Tôi nhận được tên mười, nhưng.
Ồ, nó vẫn hỏi tôi bao nhiêu tuổi?
Lý tưởng nhất là tôi muốn thoát ra khỏi câu nói đúng sự thật này.
Đúng.
Vì vậy, làm thế nào tôi có thể làm điều đó?
Chà, tôi có thể sử dụng cái mà chúng ta gọi ở đây là một khối khác, mà chúng ta đã thấy trước đây.
Nhưng điều này hoạt động với một khối thử ngoại trừ.
Chúng tôi đặt nó ở cuối, nó nói, Này, hãy thử cái này.
Nếu có lỗi, hãy làm điều này.
Tuy nhiên, nếu không có lỗi khác, hãy làm điều này.
Vì vậy, trong trường hợp của chúng tôi, chúng tôi chỉ có thể nói break.
Và bạn biết những gì?
Chúng tôi thậm chí có thể in.
Cảm ơn bạn.
Chỉ vì vậy chúng tôi rất tốt, nếu tôi dừng việc này và chạy lại và tôi cho họ tuổi của tôi.
Của bạn đây.
Đã được thực hiện.
Chúng tôi đã thoát ra khỏi vòng lặp và mọi thứ đều tốt.
Và khối tri accept ls này có thể đi bất cứ đâu.
Chúng tôi có thể gói toàn bộ tệp của mình trong một lần thử ngoại trừ khối khác.
Chúng tôi chỉ có thể thêm nó vào các chức năng của chúng tôi bên trong mỗi chức năng riêng lẻ của chúng tôi, bất cứ điều gì chúng tôi muốn chúng tôi có thể
sử dụng.
Đây chỉ là một công cụ khác mà Python cung cấp cho chúng ta để xử lý lỗi.
Nhưng để tôi hỏi bạn một điều.
Điều gì sẽ xảy ra nếu tôi làm thay vì in h tôi đã làm, giả sử, mười chia cho tuổi.
Nếu tôi chạy chương trình của mình.
Và tôi gõ vào đây số 0 và tôi nhập.
Ồ, tôi vào đó.
Vui lòng nhập số của chúng tôi.
Nhưng tôi đã nhập một số.
Đây là một chương trình có lỗi.
Mặc dù tôi đang nhập một số, nó vẫn cho tôi thông báo lỗi tương tự.
Vậy chúng ta phải xử lý việc này như thế nào?
Làm thế nào để chúng tôi xử lý các lỗi khác nhau, một trong đó là lỗi giá trị và một lỗi khác rõ
ràng là lỗi chia 0.
Trong khối chấp nhận, tôi có thể chỉ cần cung cấp cho nó loại lỗi mà tôi muốn xử lý.
Và hãy nhớ rằng, những lỗi này được tạo sẵn trong đây mà tôi có thể chỉ cần sao chép và dán.
Vì vậy, trong trường hợp của tôi, tôi muốn nói đây là lỗi giá trị để nếu tôi chạy chương trình của mình.
Và tôi gõ số không.
Ồ, tôi hiểu rồi.
Điều này ngoại trừ khóa chỉ chấp nhận giá trị.
Các lỗi.
Mọi lỗi khác nó không quan tâm.
Hừ!
Vậy chúng ta có thể làm gì ở đây?
Chà, một tùy chọn là sao chép vào đây và nói, này, hãy thêm một tùy chọn khác, ngoại trừ và trong trường hợp này, tôi muốn
có lỗi chia bằng 0.
Trong trường hợp người dùng nhập số 0, bạn có thể nói vui lòng nhập h cao hơn 0.
Vì vậy, nếu tôi chạy điều này ngay bây giờ.
Và tôi không nhận được, vui lòng nhập h cao hơn 0.
Nếu tôi làm một số vô nghĩa.
Rất tiếc.
Nếu tôi nói một số câu vô nghĩa mà tôi hiểu, vui lòng nhập một số.
Nếu cuối cùng tôi nhập một số, hãy nhìn vào số đó.
Cảm ơn bạn.
Mọi thứ đang hoạt động.
Bây giờ đây là câu hỏi của tôi.
Điều gì xảy ra nếu chúng ta vào?
Một lỗi giá trị khác ở đây.
Và lỗi giá trị này chỉ là dấu chấm than.
Điều gì xảy ra bây giờ?
Tôi có?
Vui lòng nhập một số vì khối chấp nhận này sẽ chỉ chạy một lần.
Ngay sau khi nó bắt được lỗi mà nó đang tìm kiếm, nó sẽ chạy.
Và sau đó quay lại vòng lặp.
Vì vậy, chỉ một trong những lỗi sẽ bị bắt.
Hãy cùng nghỉ ngơi và tìm hiểu thêm về cách xử lý lỗi trong video tiếp theo.
Tạm biệt.