簡體   English   中英

在沒有“raise”語句的情況下引發 python 異常

[英]Raise a python exception without "raise" statement

是否可以在不使用raise語句的情況下在 Python 中引發異常?

例如,使用ValueError.raise()之類的方法代替raise ValueError 此問題僅與 python 內置異常有關,與可以從它們構建的一些自定義異常類無關。

您可以,只需構建一個導致生成異常的代碼

  • 零除法錯誤

    print("x") 1 / 0
     Traceback (most recent call last): File "C:\Users\...\test_4.py", line 9, in <module> 1 / 0 ZeroDivisionError: division by zero
  • 斷言錯誤

    print("x") assert 1 == 0, "custom message"
     Traceback (most recent call last): File "C:\Users\...\test_4.py", line 9, in <module> assert 1 == 0, "custom message" AssertionError: custom message
  • ...

定義一個助手 function 來引發異常:

def raising(exc: BaseException):
    raise exc

然后可以在任何可以使用表達式的地方使用它,例如lambda或賦值表達式。

這種方法可用於使幾乎任何語句都可用作表達式。 但是,請注意語句是代碼可讀性的重要組成部分——如果有疑問,最好重構代碼,以便可以在適當的位置使用語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM