Thử ngoại trừ trong thử ngoại trừ Python
('Yeah ! Your answer is :', 1)4_______15_______6 ('Yeah ! Your answer is :', 1)8 # working of try() 8_______15_______9def 0Sorry ! You are dividing by zero0 Sorry ! You are dividing by zero0 def 3def 4def 5 Show
Lần gọi thứ hai đến hàmdivide() đưa ra ngoại lệ ZeroDivisionError và chương trình kết thúc Chúng tôi chưa bao giờ nhận được đầu ra của lệnh gọi phương thứcdivide() thứ ba bởi vì chúng tôi đã không xử lý ngoại lệ trong mã của mình Hãy viết lại phương thức split() với cách xử lý ngoại lệ phù hợp. Nếu ai đó cố gắng chia cho 0, chúng tôi sẽ bắt ngoại lệ và in thông báo lỗi. Bằng cách này, chương trình sẽ không kết thúc sớm và đầu ra sẽ có ý nghĩa hơn def divide(x, y): try: print(f'{x}/{y} is {x / y}') except ZeroDivisionError as e: print(e) divide(10, 2) divide(10, 0) divide(10, 4) đầu ra 10/2 is 5.0 division by zero 10/4 is 2.5Xử lý ngoại lệ Python Lớp BaseException là gì?Lớp BaseException là lớp cơ sở của tất cả các ngoại lệ. Nó có bốn lớp con
Một số lớp ngoại lệ tích hợpMột số lớp ngoại lệ dựng sẵn trong Python là
Một số lớp cảnh báo tích hợpLớp Cảnh báo là lớp cơ sở cho tất cả các cảnh báo. Nó có các lớp con sau
Xử lý nhiều ngoại lệ trong một khối ngoại trừ duy nhấtMột khối thử có thể có nhiều khối ngoại trừ. Chúng tôi có thể bắt các ngoại lệ cụ thể trong mỗi khối ngoại trừ def divide(x, y): try: print(f'{x}/{y} is {x / y}') except ZeroDivisionError as e: print(e) except TypeError as e: print(e) except ValueError as e: print(e) Mã trong mọi khối ngoại trừ giống nhau. Trong trường hợp này, chúng ta có thể xử lý nhiều ngoại lệ trong một khối except. Chúng ta có thể chuyển một bộ đối tượng ngoại lệ vào một khối ngoại lệ để bắt nhiều ngoại lệ def divide(x, y): try: print(f'{x}/{y} is {x / y}') except (ZeroDivisionError, TypeError, ValueError) as e: print(e) Bắt tất cả các ngoại lệ trong một khối ngoại trừ duy nhấtNếu chúng tôi không chỉ định bất kỳ lớp ngoại lệ nào trong khối ngoại trừ, nó sẽ bắt tất cả các ngoại lệ được đưa ra bởi khối thử. Có lợi khi có điều này khi chúng ta không biết về các trường hợp ngoại lệ mà khối thử có thể đưa ra Mệnh đề ngoại trừ trống phải là mệnh đề cuối cùng trong chuỗi xử lý ngoại lệ ________số 8_______ Sử dụng khác Chặn bằng thử ngoại trừMã khối khác là tùy chọn. Nó được thực thi khi không có ngoại lệ nào được đưa ra bởi khối thử def divide(x, y): try: print(f'{x}/{y} is {x / y}') except ZeroDivisionError as e: print(e) else: print("divide() function worked fine.") divide(10, 2) divide(10, 0) divide(10, 4) đầu ra Python Thử ngoại trừ khối khácMã khối khác được thực thi hai lần khi khối thử hàm split() hoạt động mà không có bất kỳ ngoại lệ nào Sử dụng khối cuối cùng với try-ngoại trừMã khối cuối cùng được thực thi trong tất cả các trường hợp, cho dù có ngoại lệ hay không. Khối cuối cùng được sử dụng để đóng tài nguyên và thực hiện các hoạt động dọn dẹp def divide(x, y): try: print(f'{x}/{y} is {x / y}') except ZeroDivisionError as e: print(e) else: print("divide() function worked fine.") finally: print("close all the resources here") divide(10, 2) divide(10, 0) divide(10, 4) đầu ra Python Thử ngoại trừ Khác Cuối cùng chặnCú pháp xử lý ngoại lệ PythonBây giờ chúng ta đã thấy mọi thứ liên quan đến xử lý ngoại lệ trong Python, cú pháp cuối cùng là try -> except 1...n -> else -> finally Chúng tôi có thể có nhiều khối ngoại trừ cho một khối thử. Nhưng, chúng ta chỉ có thể có một cái khác và cuối cùng chặn Tạo lớp ngoại lệ tùy chỉnhChúng ta có thể tạo một lớp ngoại lệ tùy chỉnh bằng cách mở rộng lớp Ngoại lệ. Cách tốt nhất là tạo một ngoại lệ cơ sở và sau đó dẫn xuất các lớp ngoại lệ khác. Dưới đây là một số ví dụ về việc tạo các lớp ngoại lệ do người dùng định nghĩa 10/2 is 5.0 Traceback (most recent call last): File "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/exception_handling.py", line 6, in0 Quy ước đặt tên là hậu tố tên của lớp ngoại lệ với "Lỗi" Tăng ngoại lệChúng tôi có thể sử dụng từ khóa nâng cao để đưa ra một ngoại lệ từ mã của mình. Một số tình huống có thể xảy ra là
10/2 is 5.0 Traceback (most recent call last): File "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/exception_handling.py", line 6, in1 đầu ra 10/2 is 5.0 Traceback (most recent call last): File "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/exception_handling.py", line 6, in2 Ví dụ về khối try-ngoại trừ lồng nhauChúng ta có thể có các khối try-ngoại trừ lồng nhau trong Python. Trong trường hợp này, nếu một ngoại lệ được đưa ra trong khối thử lồng nhau, thì khối ngoại trừ lồng nhau sẽ được sử dụng để xử lý nó. Trong trường hợp không thể xử lý ngoại lệ lồng nhau, các khối ngoại trừ bên ngoài được sử dụng để xử lý ngoại lệ bạn có thể có một thửVí dụ về khối thử-ngoại trừ lồng nhau
. Trong trường hợp này, nếu một ngoại lệ được đưa ra trong khối thử lồng nhau, thì khối ngoại trừ lồng nhau sẽ được sử dụng để xử lý nó. We can have nested try-except blocks in Python. In this case, if an exception is raised in the nested try block, the nested except block is used to handle it.
Bạn có thể có nhiều ngoại lệ trong TRY khôngTrong Python, các khối ngoại lệ thử có thể được sử dụng để bắt và phản hồi một hoặc nhiều ngoại lệ . Trong trường hợp một quy trình phát sinh nhiều ngoại lệ có thể xảy ra, tất cả chúng có thể được xử lý bằng một mệnh đề ngoại trừ duy nhất.
Một lần thử có thể có nhiều Ngoại lệ không?Có thể có nhiều khối ngoại trừ cho một khối thử . Hãy cho chúng tôi xem các ví dụ xử lý nhiều ngoại lệ của Python. Khi trình thông dịch gặp một ngoại lệ, nó sẽ kiểm tra các khối ngoại trừ được liên kết với khối thử đó. Các khối ngoại trừ này có thể khai báo loại ngoại lệ mà chúng xử lý.
chúng ta có thể sử dụng khác với tryKhối thử cho phép bạn kiểm tra lỗi của một khối mã. Khối ngoại trừ cho phép bạn xử lý lỗi. Khối khác cho phép bạn thực thi mã khi không có lỗi . Khối cuối cùng cho phép bạn thực thi mã, bất kể kết quả của khối thử và ngoại trừ. |