Java学习笔记之异常处理

异常: Error Exception

概述:
try {代码块1} :对代码块1进行代码监控
catch(){代码块2}:当代码1出现了对应捕获的异常则执行此对应的代码块内容。
finally{代码块3} :表示无论如何,是否出现异常,都会执行里面的代码内容。

有异常:代码块1 ---> 代码块2 ---->代码块3 (出现异常以后,异常后面的代码就不会执行了,代码流程改变了。)
没异常:代码块1 ---> 代码块3

我们可以分别捕获多种异常,一旦发生那种异常就进入对应catch里面的代码块。
捕获的异常的顺序:先子类到父类 先细后粗

可不可以没有finally块?可以
可以不可以没有catch块?没有finally就一定要有catch.如果有finally语法上可以没有catch,我们还是要加上catch

编译时异常:编译期间就需要捕获异常。也就是说必须有try catch捕获
运行时异常:NullPointerException 。可以根据需要有或者没有。

 1         try {
 2             
 3             //我们要对下面的代码进行监控
 4             //代码块1;
 5             //引用数据类型为null的时候,不能调用null上面的任何方法或者属性。否则给出空指针异常。NullPointerException
 6 //            String s =null;
 7 //            s.equals("abc");
 8             
 9 //            System.out.println(5/0);
10             
11             
12             System.out.println("hello");
13         } catch (NullPointerException e) {
14             //代码块2;// 只有出现了NullPointerException的时候才执行
15             System.out.println("你的代码出现了NullPointerException。。。。。");
16 //            e.printStackTrace();
17         } catch (ArithmeticException e) {
18             //代码块2;// 只有出现了ArithmeticException的时候才执行
19             System.out.println("你的代码出现了ArithmeticException。。。。。");
20 //            e.printStackTrace();
21         } finally {
22             //代码块3;
23             System.out.println("这句代码真的总是会执行吗?");
24         }

自定义异常:

自定义一个异常类继承Exception接口

public class OutOfAgeException extends Exception{
    
    /**
     * 自定义异常处理
     */
    private static final long serialVersionUID = 1L;
    
    public OutOfAgeException(String msg){
        super(msg);
        
    }
    

}

写一个方法抛出异常

public static void age(int age) throws OutOfAgeException {
        if(age<0){
            throw new OutOfAgeException("年龄不合法...");
        }else{
            System.out.println("年龄合法");
        }
    }

在上诉代码块1中调用方法就行

java异常中throw和throws的区别:

throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。

throw:则是用来抛出一个具体的异常类型。

猜你喜欢

转载自www.cnblogs.com/sunzhiqiang/p/11742884.html
今日推荐