亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

異常處理指南-Python與Java

異常處理指南-Python與Java

料青山看我應如是 2021-03-28 08:42:06
我是原始的Java開發人員,對我而言,Java中的Exception很顯然/很容易讓我決定將其捕獲或扔給調用方以供以后處理。然后是Python,沒有檢查到的異常,因此從概念上講,沒有什么可以迫使您處理任何事情(根據我的經驗,如果不檢查文檔,您甚至不知道可能會拋出哪些異常)。我已經從Python專家那里聽到很多東西,在Python中,有時最好讓它在運行時失敗,而不是嘗試處理異常。有人可以給我一些有關以下方面的建議嗎?Python異常處理的準則/最佳實踐是什么?Java和Python在這方面有何區別?
查看完整描述

3 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

好的,我可以嘗試給出一個盡可能保持中立的答案……(注意:我已經用幾個月的時間完成了Python的專業工作,但是我還遠遠不能完全掌握該語言)

  1. 該準則是“免費的”;如果你來自一個Java的背景,你肯定會花更多的時間比大多數的Python開發者那里尋找什么被拋出時的文件,并有更多tryexcept/finally比常規Python代碼中找到。換句話說:做適合自己的事。

  2. 除了它們可以隨時隨地拋出的事實之外,Python還具有多異常捕獲(僅從7開始才在Java中可用)with(某種程度上等效于Java 7的try-with-resources),您可以擁有多個except塊(例如Java可以catch不止一次)等等。此外,我不知道應如何命名異常的真正約定,因此,如果您看到SomeError,不要被愚弄,這很可能是Java開發人員認為的“已檢查的異?!?,而不是Error。


查看完整回答
反對 回復 2021-04-02
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

我不是Python開發人員,但我在C#中做了很多工作,但C#中也沒有檢查異常。作為一名Java編碼器,這需要一些時間來適應。我個人仍然認為檢查異常是一個不錯的功能,但是意見卻大相徑庭(正如您在此處的某些回復中所看到的)。

在線上有很多文章介紹為什么檢查異常不是一個好主意(有關這種觀點,請參閱此博客)。

但是,不管您的喜好如何:Python和C#的經驗法則基本上是做您已經在做的事情-測試運行并閱讀文檔。

我通常在C#中要做的是,在程序的根目錄中有一個“全部捕獲”異常處理程序,以確保報告任何錯誤并且程序干凈退出,然后在我的代碼中更深層的地方有針對“已知的特定錯誤”。因此,實際上,與您在Java中的工作方式沒有什么不同,只是要多做一點工作才能弄清楚將特定處理程序放在哪里。


查看完整回答
反對 回復 2021-04-02
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

  1. 最佳實踐是在適當的位置處理適當的異常。作為開發人員,只有您自己可以決定代碼的哪一部分應該捕獲異常。隨著體面的單元測試,這應該變得顯而易見。如果您有未處理的異常,它們將會出現。

  2. 您已經描述了差異。從根本上講,Java的設計師認為他們比您更了解應該如何編碼,并且會迫使您編寫大量代碼。相比之下,Python假設您是成年人,并且您知道自己想做什么。這意味著您可以堅持射擊自己。


查看完整回答
反對 回復 2021-04-02
  • 3 回答
  • 0 關注
  • 246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號