我有興趣瞭解使用throw new Exception()
和new Exception()
的最佳實踐。在使用new Exception()
的情況下,我已經看到代碼移動到下一個語句,而不是拋出異常。「拋出新異常」和「新異常」之間的區別?
但據我所知,我們應該用new Exception()
扔RuntimeException
。
任何人都可以扔在這一些輕?
我有興趣瞭解使用throw new Exception()
和new Exception()
的最佳實踐。在使用new Exception()
的情況下,我已經看到代碼移動到下一個語句,而不是拋出異常。「拋出新異常」和「新異常」之間的區別?
但據我所知,我們應該用new Exception()
扔RuntimeException
。
任何人都可以扔在這一些輕?
new Exception()
手段創建一個實例(與創建新的整數(...)) 但沒有異常將發生,直到你把它...
考慮下面的代碼片段:
public static void main(String[] args) throws Exception {
foo(1);
foo2(1);
}
private static void foo2(final int number) throws Exception {
Exception ex;
if (number < 0) {
ex = new Exception("No negative number please!");
// throw ex; //nothing happens until you throw it
}
}
private static void foo(final int number) throws Exception {
if (number < 0) {
throw new Exception("No negative number please!");
}
}
的方法foo()將拋出一個異常,如果參數是負數,但 如果參數是負數,方法foo2()將創建異常實例
Exception e = new Exception();
只是創建一個新的異常,你可以稍後拋出。使用
throw e;
而
throw new Exception()
創建並拋出一個行異常
要創建並拋出一個運行時異常
throw new RuntimeException()
new Exception()
意味着你正在創建一個新的實例異常類型。這意味着您只是實例化類似於其他對象的對象,如new String("abc")
。當您要在接下來的幾行代碼執行中拋出Exception
類型的異常時,您會這樣做。
而當你說throw new Exception()
這意味着你在說移動程序控制呼叫者,而這個throw語句後不執行進一步的陳述。
如果您發現無法繼續前進並進一步執行,並讓來電者知道我無法處理此案,並且您知道如何處理此案,請執行此操作所以。
有這樣沒有最好的做法,你與蘋果比較桔子。但請記住,當拋出一個異常時,你總會拋出一個有意義的異常,比如IO,如果文件不存在,它會拋出FileNotFoundException
而不是它的父項IOException
。
新異常意味着創建一個實例(與new Int埃格爾(...)) 但會發生也不例外,直到你把它...... –
「有人告訴我,我們應該用新的異常()拋出的RuntimeException」靠誰?哪裏?有什麼推理?新的Exception()不會拋出實例化的異常。 – davmac