Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách sử dụng câu lệnh raise from trong Python để đưa ra một ngoại lệ với thông tin bổ sung Giới thiệu về câu lệnh raise from trong PythonCâu lệnh ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 5 có cú pháp như sauraise <ExceptionType> from <cause> Code language: Python (python)
Về mặt kỹ thuật, nó tương đương như sau ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python)
Theo mặc định, thuộc tính ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 6 trên các đối tượng ngoại lệ luôn được khởi tạo thành ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 7Tăng Python từ ví dụ câu lệnhHàm ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 8 sau đây chia một số cho một số khác và trả về kết quả của phép chiadef divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python)
Hàm ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 8 có trình xử lý ngoại lệ bắt ngoại lệ def divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python) 0. Bên trong trình xử lý, chúng tôi đưa ra một ngoại lệ def divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python) 1 mớiNếu bạn chuyển số 0 vào đối số thứ hai của hàm ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 8raise <ExceptionType> from <cause> Code language: Python (python) 1bạn sẽ nhận được dấu vết ngăn xếp sau raise <ExceptionType> from <cause> Code language: Python (python) 2Thông báo nhập khẩu là raise <ExceptionType> from <cause> Code language: Python (python) 3Điều đó có nghĩa là trong khi bạn đang xử lý ngoại lệ def divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python) 0, ngoại lệ def divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python) 1 đã xảy raĐể hướng dẫn Python rằng bạn muốn sửa đổi và chuyển tiếp ngoại lệ def divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python) 0, bạn có thể sử dụng câu lệnh ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 5 như thế nàyraise <ExceptionType> from <cause> Code language: Python (python) 8Khi bạn chạy mã, bạn sẽ nhận được dấu vết ngăn xếp sau raise <ExceptionType> from <cause> Code language: Python (python) 9Bây giờ, bạn nhận được ngoại lệ def divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python) 1 với nguyên nhân được thêm vào thuộc tính __cause__ của đối tượng ngoại lệPhần sau sửa đổi đoạn mã trên để hiển thị thuộc tính ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 6 của ngoại lệ def divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python) 1ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 3đầu ra ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 4Python tăng ngoại lệ từ Không cóNếu nguyên nhân của ngoại lệ không quan trọng, bạn có thể bỏ qua nguyên nhân bằng cách sử dụng câu lệnh raise <ExceptionType> from <cause> Code language: Python (python) 10ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 0Ví dụ: bạn có thể ẩn nguyên nhân của ngoại lệ def divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python) 1 trong hàm ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 8 như sauex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 1đầu ra ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 2Bây giờ, ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 6 là raise <ExceptionType> from <cause> Code language: Python (python) 14. Ngoài ra, hàm ex = ExceptionType
ex.__cause__ = cause
raise ex Code language: Python (python) 8 tăng ngoại lệ def divide(a, b):
try:
return a / b
except ZeroDivisionError as ex:
raise ValueError('b must not be zero') Code language: Python (python) 1 mà không có bất kỳ thông tin bổ sung nào
Tăng trong Python là gì?
Từ khóa nâng cao Python được được sử dụng để đưa ra các ngoại lệ hoặc lỗi . Từ khóa raise phát sinh lỗi và dừng luồng điều khiển của chương trình. Nó được sử dụng để hiển thị ngoại lệ hiện tại trong một trình xử lý ngoại lệ để nó có thể được xử lý thêm trong ngăn xếp cuộc gọi.
Tuyên bố nâng cao là gì?
Câu lệnh RAISE ngừng thực thi bình thường khối PL/SQL hoặc chương trình con và chuyển quyền kiểm soát tới trình xử lý ngoại lệ . Các câu lệnh RAISE có thể đưa ra các ngoại lệ được xác định trước, chẳng hạn như ZERO_DIVIDE hoặc NO_DATA_FOUND hoặc các ngoại lệ do người dùng xác định có tên do bạn quyết định.
Nâng cao có dừng chương trình Python không?
Tác dụng của câu lệnh nâng cao là chuyển hướng thực thi trong một bộ except phù hợp hoặc để dừng chương trình vì không tìm thấy bộ ngoại trừ phù hợp nào để xử lý ngoại lệ. The exception object created by raise can contain a message string that provides a meaningful error message.
Tăng trong Python có trả lại không?
Bạn không thể tăng và trả lại nhưng bạn có thể trả về nhiều giá trị, trong đó giá trị đầu tiên giống với giá trị bạn hiện đang sử dụng và giá trị thứ hai cho biết liệu có ngoại lệ hay không . |