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


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

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

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

  • 相关阅读:
    loader加载png,并复制多份
    FLVPlayback应用
    Android自定义ExpandableListView
    Android startActivityForResult的使用
    Android中ExpandableListView的使用
    Android基础 获取手机分辨率、状态栏、标题栏高度
    Java 字符串拼接方式
    Java String字符串拼接,截取,查找及日期转换
    android中使用startActivityForResult回传数据
    android tabhost位于底部
  • 原文地址:https://www.cnblogs.com/chenxiaojie/p/10786314.html
Copyright © 2020-2023  润新知