逻辑图:
代码讲解
/*
* 标题:Java中的异常捕获与处理 [入门级别]
* 作者Nstar
* 时间:2020年3月20号
* 程序中的异常分为“运行异常”和“已知异常” ,异常就像我们开车遇到了障碍物,要绕开一样
* 程序员在编写程序中,需要用到异常,如果程序遇到了异常之后,需要按照程序员设定的逻辑来执行
* 如果没有异常处理,会造成整体的崩溃,这样用户体验非常不好
* 异常处理语法格式:
* try{
* 被检测可能存在异常的代码
* }
* catch(异常类 自定义对象名称){ catch语句可以有多个
* 触发catch语句中的异常后要执行的语句
* }
* finally{ finally语句只允许有一个
* 不管有没有异常,都执行该语句
* }
* */
public class Test22 {
public static void main(String[] args) {
try { //算数异常案例
int a = 1/0; //因为在计算机中0不能被整除
System.out.println(a);
//不能被整除,所以触发了ArithmeticException异常,Java将其交给了catch
}
catch (ArithmeticException a){
//catch接收到了ArithmeticException异常后
// 执行了语句 System.out.println("捕获异常ArithmeticException!!!");
System.out.println("捕获异常ArithmeticException!!!");
}
finally {
//finally语句,在异常处理中,不管有没有遇到异常,最后都执行
System.out.println("异常检测与处理1");
}
System.out.println(""); //换行打印,用于隔开两个案例,使其看起来更清晰
try { //空指针异常案例
String age = null;
System.out.println(age.length());
//由于age变量为空值,所以触发了NullPointerException异常,Java将其交给了catch
}
catch (NullPointerException b){
//catch语句在接收到之后执行了System.out.println("捕获异常NullPointerException!!!");语句
System.out.println("捕获异常NullPointerException!!!");
}
finally {
//finally语句,在异常处理中,不管有没有遇到异常,最后都执行
System.out.println("异常检测与处理2");
}
}
}
执行结果