异常
- 异常概述
- JVM的默认处理异常方式
- 自己处理异常
捕获异常:try...catch...finally
抛出异常:throws
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
异常的处理方式:
1.抛出 由更高级的调用者完成异常处理
2.异常捕获
try{
尝试执行的代码
}catch{
出现异常后处理异常的代码
}finally{
处理完成后,无论是否有异常都要执行的代码
}
*/
public class Dmeo02 {
// 方法一:持续抛出异常,调用该方法的位置再处理异常
// public static void main(String[] args) throws ParseException {
// SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
// Date d1 = sdf.parse("2022-12-1");
// }
// 方法2 :使用try catch 处理异常,此时不会出现异常终止程序的现象
// public static void main(String[] args) {
// SimpleDateFormat sdf = new SimpleDateFormat("YYYY:MM:dd");
//
// try {
// Date d1 = sdf.parse("2022-12-1");
// } catch (Exception e) {
// // 输出错误信息,不影响代码继续向下执行
// e.printStackTrace();
// System.out.println("代码报错了");
// } finally {
// System.out.println("程序结束了");
// }
// }
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("YYYY:MM:dd");
// 一般这种简单的波按错,我们直接使用快捷键就可以处理异常:ALT+ENTER
try {
Date d1 = sdf.parse("2022-12-1");
} catch (ParseException e) {
e.printStackTrace();
}
}
}
- 思考
finally里边的代码真的永远会执行吗?
出现非运行时异常时不可能执行finally
如果手动结束,也不会执行finally中的指令
运行时异常出现,或者不出现异常时,都会执行finally