2014-07-10 29 views
3

我創建嵌套的方法樹,看起來簡單地說是這樣的: enter image description here如何從深層嵌套方法中捕獲錯誤?

這是簡化的圖片,這應該理解我在說什麼關於幫助。問題是,如何通知淺層方法的最佳方法是什麼會出現更深層的問題。例如,找不到一個對象,對這些數據的計算是不可能做的或其他的東西,所以當沒有意義調用更深的方法的時候。

在這裏,我會說,當我遇到這個問題時,我腦海中會立即想到什麼。

出現問題時的第一種解決方法是使用選定的數據集返回double表,這意味着淺層方法的計算會出現更深的錯誤。

第二種解決方案是拋出異常並將其捕獲到方法樹的淺層。

在這種情況下哪種方法更好,稱爲「良好實踐」?
你認爲什麼是解決這個問題的方法?

回答

2

我會拋出一些自定義異常(說SomeException),它從RuntimeException(未經檢查的異常是)繼承。這將使你的代碼簡單,但仍然會給你一個異常處理機制。某些語言(例如C#)甚至沒有檢查異常的概念。

因此,您可以在method6中拋出此異常,但只能在method1的頂層捕獲它。或者...您可以在method6以上的任何級別上捕獲它(無論您希望如何)。我想這就是您需要的靈活性。而且您不需要更改方法的簽名以讀取throws SomeException,因爲您的SomeException未被選中(繼承自RuntimeException)。

關於return values or throw exceptions表示一些問題,後者肯定更好(否則爲什麼我們會有例外作爲語言結構)。

+0

thx,我認爲這是我的問題的解決方案,它是另一個更詳細。 – MyWay

0

在深層次直接throwException到上一級並在那裏處理Exception