Java如何將處理完異常之后的程序能夠從拋出異常的地點向下執(zhí)行?
因為Java中的異常處理理論,支持的是終止模型,在這種模型中,拋出異常之后,程序無法返回到異常發(fā)生的地方向下繼續(xù)執(zhí)行。但是,如果我們現(xiàn)在想要Java實現(xiàn)類似恢復(fù)模型的行為,希望異常在處理之后繼續(xù)往下進行執(zhí)行,那么有什么解決的辦法嗎?
思路:
把try塊放在while循環(huán)里,這樣就能不斷的進入try塊,直到獲得滿意的結(jié)果結(jié)束。
下來看下面的程序:
package exceptions;
class MyException extends Exception {
}
public class ContinueException {
private static int count;
private static final int COUNTNUMBER = 1;
public static void main(String[] args) {
while (true) {
try {
if (++count == COUNTNUMBER) {
throw new MyException();
}
System.out.println("Continue run after throw MyException");
} catch (MyException e) {
// TODO: handle exception
System.out.println("Caught MyException");
}finally {
if(count == COUNTNUMBER + 1) break;
}
}
}
}
程序執(zhí)行結(jié)果為:
Caught MyException
Continue run after throw MyException
從結(jié)果我們可以看到,在異常處理完之后,程序繼續(xù)向下執(zhí)行了,打印出了結(jié)果。
這個程序給我們的思路就是:如果把try塊放在循環(huán)里,并為拋出異常的語句之前建立一個條件語句,就有可能根據(jù)條件語句使下次執(zhí)行的時候,跳過拋出異常的地方,向下執(zhí)行。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
Java 實戰(zhàn)項目基于遺傳算法學(xué)校排課系統(tǒng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Springboot+Maven+mybatis+Vue+Mysql實現(xiàn)一個基于遺傳算法的學(xué)校排課系統(tǒng),大家可以在過程中查缺補漏,提升水平2021-11-11
Java數(shù)據(jù)封裝樹形結(jié)構(gòu)代碼實例
這篇文章主要介紹了Java數(shù)據(jù)封裝樹形結(jié)構(gòu)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01
Java中Stream實現(xiàn)List排序的六個核心技巧總結(jié)
這篇文章主要介紹了Java中Stream實現(xiàn)List排序的六個核心技巧,分別是自然序排序、反向排序、空值安全處理、多字段組合排序、并行流加速、原地排序等,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-04-04
SpringAOP切點函數(shù)實現(xiàn)原理詳解
這篇文章主要介紹了SpringAOP切點函數(shù)實現(xiàn)原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05

