数组-异常

一、idea中两个快捷键:

  • ctrl+h:查看类的接口
  • 连续按下两次shift:查看JDK源代码

二、异常

  • 1、异常 :程序执行过程中的不正常情况。作用 :增强程序的健壮性。
  • 2、异常在java中以类的形式存在,每一个异常类都可以创建异常对象。new一个对象
  • throws 关键字:声明:把问题标识出来,报告给我们的调用者;不需要处理;使用在参数列表后面:Throws+具体异常类型;
  • throw关键字:用来抛出一个指定类型的异常,创建一个异常对象,throw异常对象用于方法内部

  • public static int divide(int a,intb){
             if(b==0){
             throw new ArthmeticExceprion("除数不能为0")
             }
            return a/b;    
    }

     

三、Throwable异常的最高级父类:

  • 1) Error 系统内部的JVM问题,Error任何问题,应用程序问题都无法解决。 ① VirtualMachineError   ② ThreadDeath   ③ IOError
  • 2) Exception 应用程序引起的问题,通过调试程序可以解决;① RuntimeException //运行时异常   ② SQLException //数据库异常  ③ IOException //文件读写异常
  • Java语言中你对异常的处理方式包含两种:
           (1)在方法参数列表后面声明的使用:throws 关键字将异常抛给方法调用者;
           (2)使用:try..catch..finall语句进行异常捕捉

四、final--finally--finalize  区别:

  • final:关键字,表示最终的不能被继承和修改,final修饰的一般都是常量(final int MAX=1;定义一个常量;final class Student 不能被继承;)
  • finally:关键字,和try...catch(){ }联合使用,出现在异常处理机制中,其中的代码块一定会执行,并且在程序中只能出现一次
  • finalize:是Object中的一个方法,作为一个方法名出现;垃圾回收器GC负责调用finalize这个方法。

五、自定义异常

  • 自定义异常:需要继承运行时异常:RuntimeException
  • 看下sun公司:NullPointException空指针异常---ArithmeticException:算术异常;源代码
//空指针异常源代码:NullPointException空指针异常
//源代码
public class NullPointerException extends RuntimeException {
    public NullPointerException() {
        super();
    }

    public NullPointerException(String s) {
        super(s);
    }
}


//算数异常源代码:ArithmeticException:算术异常
//源代码
public class ArithmeticException extends RuntimeException {
public ArithmeticException() {
        super();
    }

    public ArithmeticException(String s) {
        super(s);
    }
    
}

 

自定义异常:需要继承运行时异常:RuntimeException

 

//自定义空指针异常
public class MyNullPointExcception extends RuntimeException{
    public MyNullPointExcception(){
     super();   
    }
    
    public MyNullPointExcception(String message){
        super(message);
    }
}

 

//测试自定义异常:
public class Test{
    public static void main(String[] args){
        Integer add = null;
        try{
            add = add(null,1);
            
        }catch( MyNullPointExcception e){
            e.printStackTrace();
            System.out.println("自己定义的异常");
        }
        
    }
//定义一个方法
public static Integer add(){ if(a == null || b== null){ throw new MyNullPointException("参数不能为null"); } return a+b; } }

异常结构图:

 

 

 

posted @ 2022-04-23 13:59  280887072  阅读(26)  评论(0编辑  收藏  举报