java處理異常以後程序會如何執行

java處理異常以後程序會如何執行

問題產生:當產生異常後,並在異常處理器中進行執行以後,程序會是如何的一種狀態,是終止仍是繼續執行處理以後的代碼呢?

先上代碼:
例子
由以上的代碼咱們能夠知道在拋出異常以後的代碼都會被編譯器視做無用的代碼,進一步會顯示的報錯。所以更談不上以後的代碼能夠執行了。
進一步修改以後,咱們採用如下的代碼進行測試
例子
例子
能夠得出如下的結果:
例子
從結果中咱們能夠看出,當主程序(main)捕獲到異常以後,會進一步進行處理,隨之處理完以後會進一步執行以後的代碼。java

接下來咱們看另外一種狀況:
例子
咱們將對第一種的異常放在其餘的類方法種進行捕獲,咱們從上圖能夠看出throw new Exception("第二種異常哈")以後的代碼仍然視爲無用。接着咱們在主程序(在另外一個類中)進行調用當前的方法並對其進行捕獲。
例子
運行程序得出如下的結果:
例子
咱們能夠看出在第一種異常捕獲以後並拋出第二種異常時,並不會去執行其後的代碼,finally裏面的代碼除外。測試

由此,就最開始的問題以及以後的分析,咱們能夠得出如下的結論:spa

  1. 在同一個做用域下,throw拋出異常以後的代碼都視爲無用,這個會被編譯器顯示的報錯。
  2. 當前做用域下的無拋出異常,當捕獲了異常並處理以後,其後的代碼會繼續執行下去

以上都針對於檢查型異常而言的。作用域

相關文章
相關標籤/搜索