Java-异常

一 异常

1 什么是异常?

        异常就是程序出现了不正常的情况

2 编译时异常和运行时异常的区别(记忆)

2.1 编译时异常 --> 都是Exception类及其子类

        必须显示处理 否则程序就会发送错误 无法通过编译

2.2 运行时异常

        都是RuntimeException类及其子类

        无需显示处理,也可以和编译时异常一样处理

3JVM 默认处理异常的方式

如果程序出现了问题 我们没有做任何处理 最终JVM会做默认的处理

处理方式有如下步骤:

        把异常的名称,错误原因及异常出现的位置等信息输出在了控制台

        程序停止执行

4 throws方式处理异常

代码示例:

public class ExceptionDemo{
    public static void main(String[] args)throws ParseException{
        System.out.println("开始")
        method2();

        
        System.out.println("结束");

    }

    //编译时异常
    public static void method2() throws PaseException{
        String s= "2048-08-09";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        Date d = sdf.parse(s);
        System.out.println(d);

    }

    // 运行时异常
    public static void method() throws ArrayIndexOUTofBoundException{
        int[] arr ={1,2,3};
        System.out.println(arr[3]);

    
    }

}
    

注意事项:

这个throws 格式是跟在方法的括号后面的

编译时异常必须要进行处理 两种处理方案: try ... catch...或者 throws,

如果采用 throws这种方案 在方法上进行显示声明 将来谁调用这个方法谁处理

5 throw 抛出异常

throw new 异常();

这个格式是在方法内的,表示当前代码手动抛出一个异常,下面的代码不用再执行了

throws 和 throw 的区别

throws 用在方法声明后面 跟的是异常类名 

表示声明异常 调用方法有可能会出现这样的异常

throw 用在方法体内 跟的是异常对象名

表示手动抛出异常对象由方法体内的语句处理

public class ExceptionDemo{
        public static void main(String[] args){
            int [] arr =null;
            printArr(arr);

            
      }

      private static void printArr(int[] arr){
           if(arr==null){

                throw new NULLPointerException();
          }else{
                for(int i=0;i<arr.length;i++){
                    System.out.println(arr[i])
        
            }
        
            }

    }
 }

6 try-catch 方式处理异常

定义格式

try{

        可能出现异常的代码

}catch(){

        异常的处理代码

}

      

执行流程

  • 程序从 try 里面的代码开始执行

  • 出现异常,就会跳转到对应的 catch 里面去执行

  • 执行完毕之后,程序还可以继续往下执行

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值