这里讨论的异常不包括内存或栈溢出的运行时异常。
演示代码
package edu.virigl.exception;
/**
* @author virgil
* @datetime 2020/12/31 11:06
*/
public class ExceptionContinueRun {
public static void main(String[] args) {
System.out.println("程序运行中...");
try {
throw new Exception("程序的一个步骤运行出错,抛出了异常");
} catch (Exception e) {
System.out.println(e.getMessage());
}
System.out.println("程序运行中...");
}
}
运行结果
Connected to the target VM, address: '127.0.0.1:56667', transport: 'socket'
程序运行中...
程序的一个步骤运行出错,抛出了异常
程序运行中...
Disconnected from the target VM, address: '127.0.0.1:56667', transport: 'socket'
Process finished with exit code 0
结论
可以观察到,第三个System.out.println("程序运行中...")
正常输出了,没有中断,所以在抛出异常然后catch()
后,下面的程序代码还是可以正常运行的。这种机制大大增强了接口的鲁棒性(robust
)。