2011-06-15 30 views
0

有人請向我解釋下面代碼中的throws Exception部分嗎?Java異常幫助

public static void main(String args[]) throws Exception { 

    //do something exciting... 

} 

在此先感謝您。

回答

3

這意味着函數main(String[])可以拋出任何子類型的Exception。在Java中,由方法拋出的所有異常(RunTimeException除外)必須爲明確聲明爲
這意味着使用main(String[])將必須照顧(trycatchException,或聲明本身throwing Exception,以及每方法。

1

異常是Java在發生意外事件時使用的一種方式。例如,如果要從文件中讀取/寫入文件,則必須處理IOException,如果文件出現問題,則該文件將被拋出。

一個小例子來解釋給你:

讓我們叫method1()方法拋出異常:

public void method1() throws MyException { 
    if (/* whatever you want */) 
    throw new MyException(); 
} 

它可以以兩種方式使用。與method2()第一種方式只會折騰熱土豆進一步:

public void method2() throws MyException { 
    method1(); 
} 

method3()第二種方式將採取異常的護理。

public void method3() { 
    try { 
    method1(); 
    } 
    catch (MyException exception) { 
    { 
    /* Whatever you want. */ 
    } 
} 

有關例外的更多信息,http://download.oracle.com/javase/tutorial/essential/exceptions/應該有所幫助。


編輯

比方說,我們要返回一個值的containt此數組中(這是輸入數字的平方):int[] squares = {0, 1, 4, 9, 16, 25};0如果數量(input)太大。

步行編程:

if (input > squares.length) 
    return 0; 
else 
    return squares[input]; 

異常大師編程:

try { 
    return squares[input]; 
} 
catch (ArrayIndexOutOfBoundException e) { 
    return 0; 
} 

第二個例子是清潔的,你也可以後添加另一個塊(另有一次),使每一個可能的問題是固定的。例如,你可以在最後補充一點:

catch (Exception e) { // Any other exception. 
    System.err.println("Unknown error"); 
} 
+0

啊......所以,這意味着它不會處理異常 它只是拋出「錯誤」 對嗎? 那麼這意味着這不是一個好習慣? – kebyang 2011-06-15 10:14:15

+0

您可能會將異常視爲錯誤,但您也可以將其視爲其他操作。我會編輯我的答案。 – SteeveDroz 2011-06-15 11:47:52