[英]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.