try-catch語句
try
{
//執行的代碼,其中可能有異常。一旦發現異常,則立即跳到catch執行。否則不會執行catch里面的內容
}
catch
{
//除非try里面執行代碼發生了異常,否則這里的代碼不會執行
}
finally
{
//不管什么情況都會執行,包括try catch 里面用了return ,可以理解為只要執行了try或者catch,就一定會執行 finally
}
java中 try-catch語句
try{
這里寫你覺得可能會出現異常或你覺得要捕獲的異常
}catch(Exception e){這里是你要捕獲的異常
當出現異常時,在這里寫上你的處理代碼
}
try/catch的功能是捕捉異常
所以在需要這個功能的時候就需要try/catch
1)java中即使不會發生異常的代碼也是可以用try/catch,catch句不會被認為不可達代碼
2)常見需要捕捉的異常
*異常:使用輸入輸出流讀寫文件的時候,
b.類型轉換異常:不確定被轉換變量是否滿足條件的時候,如下
String str = "a";
*nt(str);
*異常:數據庫操作時常伴隨有異常的發生
如:加載驅動,創建Connection,Statement,ResultSet對象,SQL語句執行
注:數據庫操作中經常使用finally來進行對象的關閉
d.工程自定義異常:大多為了輸出自定義異常信息
如:輸入網址是不安全地址的時候,出一個不安全的提示.可以用catch塊完成
【關于trycatch語句的問題catch{throw;}這里的catch是捕獲所有異常吧
是的,是捕獲所有異常.如果代碼只是你寫的這樣,catch塊里面沒有其他語句,那么毫無意義,刪掉你的try..catch以后程序的行為不會有任何變化.一般來說不建議捕獲所有異常,但具體情況具體分析.這樣的用法可以是catch{//此處做一些事情,比如記錄一個錯誤日志.throw;//throw的意思是將捕獲的異常重新拋出,以便調用棧上其他的catch塊捕獲.如果沒有任何代碼捕獲這個異常,程序將會終止,因為它不知道該如何處理這個錯誤,最安全的方式就是終止.}例如,你有類A,有一個方法Foo,顯然他/她會拋出異常.public int Foo(){return *("t");}其他方法調用了這個方法public void Bar(){try{int i=Foo();}catch{//做一些事情throw;}}最后主函數這樣寫:A a = new A();try{*();}catch{//這里又捕獲了Bar函數重新拋出的異常,做一些另外的事情} 本人回答問題都是原創,絕不上網胡亂復制粘貼.有問題可以hi我。
java 中的try catch語句里有什么深奧的?catch里有什么語句,都是什么
try{
}
catch(Exception e){
}
其實沒有什么深奧的,try-catch就是監視try中的語句,如果拋出catch中聲明的異常類型.比如ArrayIndexOutOfBoundsException就是數組越界的異常.
假設try中有語句int[] i=new int[10];如果你調用int[14]就一定會拋出ArrayIndexOutOfBoundsException這個異常,如果你寫了try-catch且寫了
catch(ArrayIndexOutOfBoundsException e){}則這個異常就會被捕獲,并執行catch程序塊中的代碼.
一般來說catch中的代碼只是用來客觀反映問題,比如吧異常打印出來,或者跟蹤異常..不應執行實際的操作..
try-catch過后程序仍然繼續執行(不寫try-catch則程序拋出異常后自行終止)
關于try catch語句的問題
是的,是捕獲所有異常。如果代碼只是你寫的這樣,catch塊里面沒有其他語句,那么毫無意義,刪掉你的try..catch以后程序的行為不會有任何變化。
一般來說不建議捕獲所有異常,但具體情況具體分析。這樣的用法可以是
catch
{
//此處做一些事情,比如記錄一個錯誤日志。
throw;//throw的意思是將捕獲的異常重新拋出,以便調用棧上其他的catch塊捕獲。如果沒有任何代碼捕獲這個異常,程序將會終止,因為它不知道該如何處理這個錯誤,最安全的方式就是終止。
}
例如,你有類A,有一個方法Foo,顯然他/她會拋出異常。
public int Foo()
{
return *("t");
}
其他方法調用了這個方法
public void Bar()
{
try
{
int i=Foo();
}
catch
{
//做一些事情
throw;
}
}
最后主函數這樣寫:
A a = new A();
try
{
*();
}
catch
{
//這里又捕獲了Bar函數重新拋出的異常,做一些另外的事情
}
本人回答問題都是原創,絕不上網胡亂復制粘貼。有問題可以hi我