在JAVA中進行異常處理練習時,我對各種事情感到有點困惑。基本上我不明白的是程序的流程是什麼時候遇到異常。我想了解在以下情況下程序的流程是如何發生的,以及我對這些概念的理解是對還是錯。瞭解JAVA中的關鍵字
public void myFunction(){
try{
//Some code......
}catch(Exception e1){
//If this Exception is occured handle it here.
}catch(Exception e2){
//if this exception has occured then
throw new myException("whatever message required");
}
finally{
//code that has to be executed
}
}
現在有什麼我的理解是:
1.如果沒有例外的是隨後發生的代碼運行順利,最終在finally塊中的代碼被執行 2.如果異常發生E1則抓在第一個catch塊中,它被適當地處理,然後最終塊被執行。 3.如果發生異常e2,會發生什麼情況。在那個catch塊中,我們拋出一個新的異常。 那麼我調用myFunction的方法應該提供一些機制來處理這個異常?所以執行將轉移到調用方法的catch塊。右? 那麼myFunction()的「finally」塊會發生什麼?它會不會被執行呢? 程序如何發生?我真的很難找到當我們使用「扔」時會發生什麼。當我們使用它時會發生什麼?
Look:e1和e2的類型都是相同的:異常,這就是catch(Exception e2)沒有機會執行的原因。 –