java比較 - 為什麼Python異常名為“Error”?
python java比較 (4)
為什麼Python異常名為“Error”(例如ZeroDivisionError
, NameError
, TypeError
)而不是“Exception”(例如ZeroDivisionException
, NameException
, NameException
)。
我來自Java背景並且最近開始學習Python,因此這令人困惑,因為在Java中,錯誤和異常之間存在區別。
Python也有區別嗎?
https://code.i-harness.com
問:為什麼Python異常名為“Error”?
我推測這是因為大多數 Python異常都被歸類為錯誤或警告 。 如果Python異常的名稱以Exception
結尾,那麼這種區別是不可能的。
警告的示例是DeprecationWarning
和ImportWarning
。
docs.python.org/2/library/exceptions.html#exception-hierarchy以及3.x docs.python.org/2/library/exceptions.html#exception-hierarchy ,請參閱docs.python.org/2/library/exceptions.html#exception-hierarchy 。
您沒有在名稱中使用“Class”命名每個類,並且在名稱中使用“_variable”命名每個變量。 使用“Exception”一詞命名異常的名稱相同。 名稱應該說明對象的含義。 '錯誤'是大多數例外的含義。
並非所有例外都是錯誤。
SystemExit
,KeyboardInterrupt
,StopIteration
,GeneratorExit
都是例外而不是錯誤。 實際錯誤中的“錯誤”一詞顯示了差異。'錯誤'比'異常'短。 可以在代碼寬度中保存幾個字符而不會丟失意義。 這有所不同。
它只是命名。 在Java中, java.lang.Error
與其他Throwable
不同,因為需要取消選中這些類型的錯誤。 在Python中,所有異常都是未經檢查的,因此區別是沒有意義的。
我相信這個約定來自PEP 8 - Python代碼風格指南 :
例外名稱
因為異常應該是類,所以類命名約定適用於此處。 但是,您應該在異常名稱上使用後綴“Error”(如果異常實際上是錯誤)。