有人請向我解釋下面代碼中的throws Exception
部分嗎?Java異常幫助
public static void main(String args[]) throws Exception {
//do something exciting...
}
在此先感謝您。
有人請向我解釋下面代碼中的throws Exception
部分嗎?Java異常幫助
public static void main(String args[]) throws Exception {
//do something exciting...
}
在此先感謝您。
這意味着函數main(String[])
可以拋出任何子類型的Exception
。在Java中,由方法拋出的所有異常(RunTimeException
除外)必須爲明確聲明爲。
這意味着使用main(String[])
將必須照顧(try
,catch
)Exception
,或聲明本身throwing Exception
,以及每方法。
異常是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");
}
啊......所以,這意味着它不會處理異常 它只是拋出「錯誤」 對嗎? 那麼這意味着這不是一個好習慣? – kebyang 2011-06-15 10:14:15
您可能會將異常視爲錯誤,但您也可以將其視爲其他操作。我會編輯我的答案。 – SteeveDroz 2011-06-15 11:47:52