程式先執行 try 中的**
如果 try 中的**出現異常, 就會結束 try 中的**, 看和 catch 中的異常型別是否匹配.
如果找到匹配的異常型別, 就會執行 catch 中的**
如果沒有找到匹配的異常型別, 就會將異常向上傳遞到上層呼叫者.
無論是否找到匹配的異常型別, fifinally 中的**都會被執行到(在該方法結束之前執行).
如果上層呼叫者也沒有處理的了異常, 就繼續向上傳遞.
一直到 main 方法也沒有合適的**處理異常, 就會交給 jvm 來進行處理, 此時程式就會異常終止.
注意
public
class
testdemo2
finally
}public
static
void
main
(string[
] args)
}//列印: 20 11
因為a++後a變成11,此時先不執行return
,finally中的**是必須要執行的,但是即使finally中即使將a變成了20,則執行完finally之後,回到try中,繼續執行return 返回的依然是11而不是20。如果finally中有return 則直接返回,不會回到try中了。
異常處理流程
異常類結構 來觀察兩個異常類的繼承關係 可以發現所有的異常型別最高的繼承類是throwable,並且通過doc文件可以發現在throwable下有兩個子類 error 指的是jvm錯誤,這個時候的程式並沒有執行,無法處理 exception 指的是程式執行中產生的異常,使用者可以使用異常處理格式處理...
異常處理流程
程式先執行 try 中的 如果 try 中的 出現異常,就會結束 try 中的 看和 catch 中的異常型別是否匹配.如果找到匹配的異常型別,就會執行 catch 中的 如果沒有找到匹配的異常型別,就會將異常向上傳遞到上層呼叫者.無論是否找到匹配的異常型別,finally 中的 都會被執行到 在該...
ARM異常處理流程
在學習與開發arm處理器的過程中,乙個不能繞開的話題就是異常處理流程。它在arm的體系架構中,佔據著不可動搖的重要地位。此處就以coterx a系列的arm處理器簡單分析一下異常中斷處理流程。說異常處理流程之前,我們先說一下arm處理器的工作模式和異常源。在coterx a系列之前的arm處理器,一...