在写程序的时候,我们经常被教导,要对异常的信息进行处理,哪里该抛出异常。但是,更多的时候,我们只是模仿异常的抛出,却不知道为什么要这样抛异常(被catch了?被向上抛了?后面的代码是否执行了?)。
接下来,我就简单的说一下异常抛出后的代码执行问题。此处不讨论自定义异常,因为自定义异常有自己的处理方式。
一、结论:
- 凡是有异常的地方,需要有处理异常的地方。(示例:Demo1, Demo2)
- 只要异常被处理,异常处理之后的代码都可以正常执行。(示例:Demo1, Demo2)
- 异常被往上抛出,则抛出异常之后的代码将不被执行。(示例:Demo2, Demo3)
二、示例代码
接下来用两段代码来说明异常抛出后代码执行的顺序
示例1.
Demo1.java
/**
* 抛出异常的代码是放在 try 中
*/
public class Demo1 {
public static void main(String[] args) {
try {
print();
Thread.sleep(200);
} catch (Exception e) {
e.printStackTrace();
System.out.println("打印抛出异常");
}