【關于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我。
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塊完成
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則程序拋出異常后自行終止)
java的try catch語句問題
肯定不會啦。
說一下try catch 和finally到底怎么回事!try catch 成對出現的,一個try就一定要有catch,被try包裹的代碼說明,如果這些代碼中只要拋出異常的話,就會停止當前的代碼運行,而跳到catch中,對于異常進行處理。而finally呢,他是一個比較特殊的東西,finally中的代碼無論出現說明狀況都會運行到。
即使出現異常。所以finally一般都是處理對資源的釋放等操作。
try{ go(); //假設在調用go方法的時候發生的異常 return “hello”; //這個return語句都是無法執行到的。}catch(Exception e){ *n("發生的異常了!");}finally{ *n("這里釋放數據庫連接!");}可以看到,當發生異常的時候,發生異常一下的代碼都是無法執行到的。
運行會跳到catch中,處理這個異常,之后進入finally中。try{ go(); return “hello”; //這個return語句都是無法執行到的。
}catch(Exception e){ *n("發生的異常了!");}finally{ *n("這里釋放數據庫連接!");}同樣的代碼,try中沒有發生異常,所以catch中的代碼是執行不到的,但是看到go方法下面的那個return了沒,那么finally中的代碼還會執行到嗎?答案是:能,一定會執行到。即使try中已經有了return。
你可以試一試!現在稍稍明白了些吧!。
try
假設adddlert()是自定義的方法當你點擊“查看消息”按鈕時就嘗試調用adddlert()try { adddlert("Welcome guest!") }如果存在異常就執行catch(err)獲取異常并且執行花括號里的代碼 txt="本頁中存在錯誤。
\n\n" ←媽媽叫你回家吃飯 txt+="點擊“確定”繼續查看本頁,\n" ←點確定就是“吃” txt+="點擊“取消”返回首頁。\n\n" ←點取消就是“不吃飯,吃§” if(!confirm(txt)) ←彈出對話框提示以上內容,等待你的選擇 { *="/*" ←點取消做的事兒 }。
關于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我
java編程時,什么情況下使用try
try catch是程序語言本身提供的一種異常處理機制,你大多數寫的代碼都是要調用底層的api,而這些api的作者在開發api時,很清楚api在使用的過程中會有哪些非正常情況發生,因此他要通知api的調用者,至于對于這種非正常情況怎么處理,就交給了api的調用者。
你是寫代碼的,你要調用api,因此你就說api的調用者,你也應該處理api本身存在的非正常情況,那你怎么處理這些非正常狀況,這就是你提到的try catch的作用了,它就是干這事的。至于api會有哪些非正常情況發生,需要查api的幫助文檔;這些非正常狀況怎么處理,這又取決于問題邏輯了,跟實際需求有關系。
try{A程序塊} catch{Exception e}{B程序塊} 。
。
。A程序塊比較有可能會出錯的地方,B則是如果A中有了錯誤,進行的處理。
就好比,一個流水線上,如果有個地方有個產品堵住了不通了,如果沒人處理,則整個流水線就沒法動作了,要想保證整個流水線的運作則要有人把這個產品給處理了。try語句就是對A程序塊的語句進行捕捉有可能出錯的地方,相當于流水線上那個檢查的人,catch語句則是處理的。
轉載請注明出處華閱文章網 » trycatch語句