簡體   English   中英

Java Try-Catch - 它是如何執行的?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM