我只是想知道Java VM如何使用Try-Catch。它如何執行它?Java Try-Catch - 它如何執行?
我最好的猜測是,它就像一個Linux系統,當安裝某些東西時,測試運行,如果沒有發現錯誤,詢問用戶他/她是否想繼續。在Try-Catch的情況下,它是否執行測試運行,如果一切正常,那麼執行它?
我只是想知道Java VM如何使用Try-Catch。它如何執行它?Java Try-Catch - 它如何執行?
我最好的猜測是,它就像一個Linux系統,當安裝某些東西時,測試運行,如果沒有發現錯誤,詢問用戶他/她是否想繼續。在Try-Catch的情況下,它是否執行測試運行,如果一切正常,那麼執行它?
它比這更簡單 - 如果包含在try子句中的任何子句產生錯誤,則將執行catch子句中的代碼(對應於該錯誤 - 您可以具有多次catch)。沒有辦法事先知道特定的子句是否會失敗,只有在錯誤發生後才嘗試恢復。
如果您有10個子句,而最後一個引發錯誤,則前9個執行的修改將不會「恢復」!
這對事先不知道並試圖恢復有意義,也許我問的是錯誤的問題? – user1360809
這個問題是一個很好的問題,我希望答案給了你一些信息,讓你進一步調查。try-catch機制並不是Java專有的,但通常是從C++到JavaScript到VB的最常見主流語言的一部分.NET和C# – thedayofcondor
try
{
//execute your code
}catch(Exception e)
{
//Log message
//IF you don't want to continue with the logic inside method, rethrow here.
}finally{
//Ir-respective of what the status is in above cases, execute this code.
}
//Continue with other logic in the method
。如果您想要確定部分代碼需要執行(或)而不是異常情況,這非常有用。
要了解更多關於try-catch如何在java中工作,請閱讀tutorial。
最後添加關閉您的資源。 :) – PermGenError
我會說'Eceptional Conditions'而不是'Error conditions' :) – PermGenError
@ chaitanya10:用你的通信更新了答案。 – kosa
可以給程序無法處理的一些意想不到的結果的代碼保存在try塊中,並處理/捕獲程序的意外崩潰,我們使用catch塊。在我們聲明異常類型的代碼可以拋出
如:
int a;
try {
a=1/0;//program wil crash here
}catch(Exception e){
System.out.println("Division by zero ");//handling the crash here
}
它開始正常執行,W/O任何檢查。如果發生任何異常,它將跳出子句(如循環中的break
),並立即執行catch
,如果沒有發現異常,它將跳過catch子句。
finally
子句確保無論是否拋出異常都會調用它。一個實際的例子是從文件或網絡讀取數據,並關閉流,無論是否拋出異常。
感謝所有,但我更期待在機器內部發生什麼,如果有人知道!只是爲了額外無用的信息! – user1360809