欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

学JAVA第二十天,接触异常处理,自定义异常

程序员文章站 2022-07-11 08:34:15
1.java.lang.NullPointerException(经常报)(运行时异常) 属于运行时异常,是编译器无法预知的异常,比如你定义了一个引用变量String a,但是你确没有用new关键字去实例化这个变量, 但是你又调用这个a的方法,所以会报这个空指针异常 解决办法有两种 一,在调用这个变 ......

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;
    }
    
}

 

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

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