java java比較 - 為什麼Python異常名為“Error”?




3 Answers

  1. 您沒有在名稱中使用“Class”命名每個類,並且在名稱中使用“_variable”命名每個變量。 使用“Exception”一詞命名異常的名稱相同。 名稱應該說明對象的含義。 '錯誤'是大多數例外的含義。

  2. 並非所有例外都是錯誤。 SystemExitKeyboardInterruptStopIterationGeneratorExit都是例外而不是錯誤。 實際錯誤中的“錯誤”一詞顯示了差異。

  3. '錯誤'比'異常'短。 可以在代碼寬度中保存幾個字符而不會丟失意義。 這有所不同。

為什麼Python異常名為“Error”(例如ZeroDivisionErrorNameErrorTypeError )而不是“Exception”(例如ZeroDivisionExceptionNameExceptionNameException )。

我來自Java背景並且最近開始學習Python,因此這令人困惑,因為在Java中,錯誤和異常之間存在區別。

Python也有區別嗎?




在這方面,Python與Java非常相似。 但是Python的Exception應該與Java的Throwable進行比較。

由於Throwables有各種各樣的風格 - Error,RuntimeException和(checked)異常 - 所以Python也是如此(儘管沒有經過檢查的異常)。

至於語言,錯誤是例外,因此繼承層次結構並不奇怪。

我不是特別喜歡Exception這個名字。 異常不僅用於特殊情況(如希望錯誤),而且還可以用於控制流程。 因為這就是Exception所做的事情; 它跳出正常的控制流程到一個標記點。 有點像goto,但更精緻。

也就是說,每當你遇到沒有找到合適的返回值的情況時,你傾向於使用異常。 在Python和Java中都是如此。




它只是命名。 在Java中, java.lang.Error與其他Throwable不同,因為需要取消選中這些類型的錯誤。 在Python中,所有異常都是未經檢查的,因此區別是沒有意義的。




Related

java python exception