Nuôi trăn

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 Python

Câu lệnh

ex = ExceptionType ex.__cause__ = cause raise ex

Code language: Python (python)
5 có cú pháp như sau

raise <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)
7

Tăng Python từ ví dụ câu lệnh

Hà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 chia

def 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ới

Nế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)
8

raise <ExceptionType> from <cause>

Code language: Python (python)
1

bạn sẽ nhận được dấu vết ngăn xếp sau

raise <ExceptionType> from <cause>

Code language: Python (python)
2

Thô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ày

raise <ExceptionType> from <cause>

Code language: Python (python)
8

Khi 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)
9

Bâ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)
1

ex = ExceptionType ex.__cause__ = cause raise ex

Code language: Python (python)
3

đầu ra

ex = ExceptionType ex.__cause__ = cause raise ex

Code language: Python (python)
4

Python 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)
10

ex = ExceptionType ex.__cause__ = cause raise ex

Code language: Python (python)
0

Ví 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ư sau

ex = ExceptionType ex.__cause__ = cause raise ex

Code language: Python (python)
1

đầu ra

ex = ExceptionType ex.__cause__ = cause raise ex

Code language: Python (python)
2

Bâ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 .