[英]Java Try-Catch - how does it execute?
我只是想知道Java VM使用Try-Catch做了什么。 它是如何執行的?
我最好的猜測是,它就像一個Linux系統,在安裝某些東西時會進行測試運行,如果沒有發現錯誤,則會詢問用戶是否要繼續。 在Try-Catch的情況下,它是否進行了測試運行,如果一切正常,那么實現它嗎?
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中工作的更多信息,請閱讀本教程 。
它比這簡單得多 - 如果try子句中包含的任何子句生成錯誤,catch子句中的代碼(對應於該錯誤 - 您可以在一次嘗試中有多個catch)將被執行。 沒有辦法事先知道特定子句是否會失敗,只是在錯誤發生后嘗試恢復。
如果你有10個子句而最后一個拋出錯誤,那么前9個執行的修改將不會被“恢復”!
可以給出一些程序無法處理的意外結果的代碼保存在try塊中,並且處理/捕獲我們使用catch塊的程序的意外崩潰。我們聲明代碼可以拋出的Exception類型
例如:
int a;
try {
a=1/0;//program wil crash here
}catch(Exception e){
System.out.println("Division by zero ");//handling the crash here
}
它開始正常執行,沒有任何檢查。 如果發生任何異常,它將突破該子句(如循環中的break
),並立即執行catch
,如果沒有找到異常,它將跳過catch子句。
finally
子句確保無論是否拋出異常都會調用它。 一個實際的例子是從文件或網絡讀取,並關閉流,無論是否拋出異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.