2011-11-18 57 views
0

我已經創建了一個用戶定義的類(如ClassA),它擴展了Exception,另一個類(ClassB)擴展了RuntimeException。請建議我在我的應用程序中使用它們的位置?何時使用擴展了RuntimeException的用戶定義類?

我是否應該在if語句中使用ClassB(它的範圍是RuntimeException),如果賬戶餘額很低?

+1

經歷這些問題可能會回答你的問題 http://stackoverflow.com/questions/7962310/user-defined-exceptions-when-do-we-use-他們 - 什麼 - 是 - 一 - EXC可選情況 http://stackoverflow.com/questions/2612073/how-can-i-handle-user-defined-exceptions-and-after-handling-them-resume-the-flow – Zohaib

+0

重複問題 – Kowser

回答

1

Runtime異常的一個例子是運行時環境拋出的例子,如算術或索引越界(最常見的)。大部分這些都是技術性的。

可以通過擴展Exception類來處理業務邏輯。

+0

會不會創建一個單獨的類的好習慣(在項目中擴展RuntimeException的ClassB,並在下面使用它,如果(value == null){拋出新的ClassB(值不能爲空)} – Wahid

+0

在我看來,應該通過啓用斷言在開發過程中檢查斷言並在生產中禁用它們,尤其是在方法參數中使用空值。你也可以按照你的建議做類似的事情,但在發展中抓住這些是一個很好的做法。因此,我對推斷的建議。 – r0ast3d

0

標準異常是檢查異常。所以你需要一個try/catch塊。 運行時異常是不需要try/catch塊的未經檢查的異常。他們不應該發生。

對於您的低帳戶餘額的業務邏輯,您應該使用已檢查的異常,以便您必須處理它們。

1

拇指約書亞·布洛克提出的規則是:

  • 使用checked異常(擴展例外),您所期望的應用程序可以從它進入
  • 使用未經檢查的異常異常狀態下恢復(繼承RuntimeException)對於場景中,你不要指望能夠恢復
+0

請推薦任何實時示例 – Wahid

+1

這個主題已用盡:)我建議在javadoc中查看RuntimeException的直接子版本,然後使用好的Google朋友。我甚至爲你找了一個很好的:http://www.ibm.com/developerworks/java/library/j-jtp05254/index.html乾杯 –

相關問題