1.java.lang.NullPointerException(经常报)(运行时异常)  属于运行时异常,是编译器无法预知的异常,比如你定义了一个引用变量String a,但是你确没有用new关键字去实例化这个变量,

                            但是你又调用这个a的方法,所以会报这个空指针异常  解决办法有两种
                                  一,在调用这个变量是判断先if(null!=a)
                                    二,try..catch捕获异常可以让程序继续执行

2.java.lang.ClassCastException(转换错误)

3.java.lang.ArithmeticException(运算错误)

4.java.lang.ArrayIndexOutOfBoundsException(越界错误)

5.java.lang.ClassNotFoundException(找不到类)通常是  打错字或  环境配置问题,例如classpath或者maven等没下载包成功

6.java.lang.SQLException(SQL语句有异常)

 

首先,异常分为捕捉异常(try--catch--finally),声明抛出异常(throws),

try{……}会对代码块里面代码进行检查,对可能会生成异常对象进行抛出。

catch{……}这是对try抛出的异常进行处理,代码块写处理代码。

finally{……}这里边的代码是一定会被执行的。通常用于清理与释放资源

其中,今天老师讲的是:自定义异常。其目的是进行分类讨论。

代码:

public class Test{

    public static void main(String args[]) throws Exception{
        
        //学生正常学习,
        //但有各种异常:1.肚子疼-->>看医生
        //              2.呕吐-->>叫前面的同学送医院,
        //                        叫隔壁的同学打扫卫生
        //              3.不会做-->>问同学问老师
        //              4.睡着了-->>切磋一下
        //第一步:定义不同的异常类(extends Exception)
        //try catch()...
        try{
            Student s = new Student();
            s.study();//如果这里发生了异常,try代码段将停止,并把异常给到catch进行处理。其他代码不会停止
            System.out.println("学java学得很爽");
        }
        catch(Exception e1){
            System.out.println(e1.getMessage());吧处理的异常进行打印,方便查看
        }
        System.out.println("程序继续运行1");
        System.out.println("程序继续运行2");
        System.out.println("程序结束");
    }
}    

 

public class Student{
    public void study() throws 肚子疼,呕吐,不会做,睡着了{//这是继承了报告的异常,也就是数可能发生的异常,然后下边要自定义相应的异常类
        System.out.println("ok come in");
    }
    public void study(String i) throws 肚子疼,呕吐,不会做,睡着了{
        
        if (i.equals("肚子疼")){
            throw new 肚子疼();//找到相应的异常
        }
        if(i.equals("呕吐")){
            throw new 呕吐();
        }
        if(i.equals("不会做")){
            throw new 不会做();
        }
        if(i.equals("睡着了")){
            throw new 睡着了();
        }    else{
      System.out.println("其他异常!!!");
    }
   }
}

下边的异常都是自定义的

public class 肚子疼 extends Exception{//把相应的异常进行处理
    private String message = "看医生";
    
    @Override
    public String getMessage(){
        return message;
    }
    
}

 

public class 呕吐 extends Exception{
    private String message = "叫前面的同学送医院,叫隔壁的同学打扫卫生";
    
    @Override
    public String getMessage(){
        return message;
    }
    
}

 

public class 不会做 extends Exception{
    private String message = "问同学问老师";
    
    @Override
    public String getMessage(){
        return message;
    }
    
}

 

public class 睡着了 extends Exception{
    private String message = "切磋一下";
    
    @Override
    public String getMessage(){
        return message;
    }
    
}

 

可能是我的语言组织能力不太好,有一些相应的细节无法用文字表达出来,还望谅解!!!

出学者,有不对的地方,还望各位大佬指点指点!!!