2013-02-20 99 views
0

我無法理解RuntimeException的工作方式。我已通過Google進行搜索。Java RuntimeException

我想用於其中的應用程序是一個收銀機程序,它只是模擬兩臺收款機的工作。我將使用兩個類:一個使用輸入和輸出,另一個使用我的所有方法等。

在我的任務描述中,它說要確保你的方法能夠捕獲任何違反的前置條件,如果拋出一個帶有信息錯誤的RuntimeException。

我不知道如何實現這一點 - 我不是在這裏尋找語法,而是如何設置這樣的事情,因爲我沒有完全理解RuntimeException的工作原理或者對於方法甚至是。我怎麼能實現一個?

回答

5

前提條件是您的方法文檔必須在方法正確執行之前爲true。例如,你可以有一個先決條件,即論證必須是正面的。 (另一個例子是對象必須是在一定的狀態。)

RuntimeExceptionException子類,是在RuntimeException型(和它的子類)中的例外是特殊選中 - 你不需要聲明你把它們作爲方法簽名的一部分。 RuntimeException的一個例子是IllegalArgumentException

因此,如果我們有這將只有工作,如果它被稱爲一個正數,你可能有一個方法:

public void foo(int x) { 
    if (x <= 0) { 
     throw new IllegalArgumentException("x must be positive"); 
    } 
    // Rest of the code here 
} 

這種保護方法的其餘則來自試圖在一個情況來操作它從來沒有打算。

+0

我明白了,這有很大幫助,謝謝。但是我沒有得到的是當你說「RuntimeException是Exception的子類」或「未選中 - 你不需要聲明你將它們作爲方法簽名的一部分拋出時」的意思「對不起,我迷失在行話裏了 – 2013-02-20 23:17:43

1

我認爲你需要增加你的知識水平,閱讀一些文章之前的實施,這是更進一步的一步。首先,您可以研究有關Throwable類,它是Java中所有錯誤和異常的超類。你也可以檢查this question

然後Exceptions需要被訪問。 Oracle教程詳細介紹了run-time handling。或者你也可以檢查this article這也說明了標題成爲一個現實生活中的例子。

而且有關錯誤和異常層次結構這個圖形使得它更易於理解:

Throwable Family