0
Java的說,如果我們從一個方法,拋出一個checked異常然後要麼我們必須聲明或用try/catch塊圍繞着它。 我不明白爲什麼它用try/catch塊聲明或包圍它,因爲只是通過聲明異常我們不能處理異常,但是當我們用try/catch塊包圍它時,我們可以處理它。 如果上述情況如此,那麼如何將其視爲另一種替代方案?聲明或周圍有try/catch塊異常在Java中
Java的說,如果我們從一個方法,拋出一個checked異常然後要麼我們必須聲明或用try/catch塊圍繞着它。 我不明白爲什麼它用try/catch塊聲明或包圍它,因爲只是通過聲明異常我們不能處理異常,但是當我們用try/catch塊包圍它時,我們可以處理它。 如果上述情況如此,那麼如何將其視爲另一種替代方案?聲明或周圍有try/catch塊異常在Java中
有兩個選項可用 1.拋出異常 - >這意味着如果發生異常情況,程序需要調用者處理它。 2.嘗試/ catch - >這意味着該方法本身將處理它。
差異是微妙的,是的,有時我們捕捉到我們在下一層拋出的異常。但是,如果仔細考慮這些說法,那就是兩種方法的核心區別。
在大型團隊中,我們經常有子團隊在圖層上工作。內層可能會選擇拋出異常並停止進一步執行流程。外層應該捕捉它,並顯示一個優雅的錯誤消息或優雅的方式來處理這些異常,以便用戶不會看到Java堆棧跟蹤。
希望這會有所幫助。
[指定由方法拋出的異常](http://docs.oracle.com/javase/tutorial/essential/exceptions/declaring.html) – Arc676
這是一種替代方法,它的代碼只有在你編譯時纔會被編譯做一個或另一個。這並不意味着拋出異常與捕捉異常是一回事。如果你想扔它,那麼你需要拋出,如果你想抓住它,你需要嘗試/抓住。如果你沒有在throws子句中指定它,也不要捕獲它,它不會編譯。 –