Java如何將處理完異常之后的程序能夠從拋出異常的地點(diǎn)向下執(zhí)行?
因?yàn)镴ava中的異常處理理論,支持的是終止模型,在這種模型中,拋出異常之后,程序無法返回到異常發(fā)生的地方向下繼續(xù)執(zhí)行。但是,如果我們現(xiàn)在想要Java實(shí)現(xiàn)類似恢復(fù)模型的行為,希望異常在處理之后繼續(xù)往下進(jìn)行執(zhí)行,那么有什么解決的辦法嗎?
思路:
把try塊放在while循環(huán)里,這樣就能不斷的進(jì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é)果。
這個(gè)程序給我們的思路就是:如果把try塊放在循環(huán)里,并為拋出異常的語句之前建立一個(gè)條件語句,就有可能根據(jù)條件語句使下次執(zhí)行的時(shí)候,跳過拋出異常的地方,向下執(zhí)行。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
詳解Java的MyBatis框架中的緩存與緩存的使用改進(jìn)
很多人在使用MyBatis的緩存后經(jīng)常會遇到MySQL分頁查詢的顯示問題,針對于此,這里我們就來詳解Java的MyBatis框架中的緩存與緩存的使用改進(jìn),首先來回顧一下MyBatis的緩存機(jī)制與執(zhí)行:2016-06-06
Java 實(shí)戰(zhàn)項(xiàng)目基于遺傳算法學(xué)校排課系統(tǒng)的實(shí)現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Springboot+Maven+mybatis+Vue+Mysql實(shí)現(xiàn)一個(gè)基于遺傳算法的學(xué)校排課系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11
Java數(shù)據(jù)封裝樹形結(jié)構(gòu)代碼實(shí)例
這篇文章主要介紹了Java數(shù)據(jù)封裝樹形結(jié)構(gòu)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Java中Stream實(shí)現(xiàn)List排序的六個(gè)核心技巧總結(jié)
這篇文章主要介紹了Java中Stream實(shí)現(xiàn)List排序的六個(gè)核心技巧,分別是自然序排序、反向排序、空值安全處理、多字段組合排序、并行流加速、原地排序等,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
SpringAOP切點(diǎn)函數(shù)實(shí)現(xiàn)原理詳解
這篇文章主要介紹了SpringAOP切點(diǎn)函數(shù)實(shí)現(xiàn)原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

