处理异常

上一次我们讲到我们需要处理的是异常是Exception.Exception分运行时异常跟检查时异常。
其实检查时异常是要强制处理的。

那么我们要关注的是运行时异常 RuntimeException。以下是常见的异常。出现这是异常往往是我们的代码错误。编译时不会错误。
NullPointerException - 空指针引用异常
ClassCastException - 类型强制转换异常。
IllegalArgumentException - 传递非法参数异常。
ArithmeticException - 算术运算异常
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException - 下标越界异常
NegativeArraySizeException - 创建一个大小为负数的数组错误异常
NumberFormatException - 数字格式异常
SecurityException - 安全异常
UnsupportedOperationException - 不支持的操作异常

出现异常,那么我们的代码块是不能被执行的。那么我们处理异常的作用是什么,我们都知道假如出现了异常,我们的程序是不能在执行下去的。
所以我们把异常处理了,这样后面的程序也是可以走下去的。即使我们处理不了异常,我们也应该告知调用者。这里出现了异常。

异常有两种的处理方式,一种是try{}catch,我们自行的把异常处理掉。另一种是直接抛异常,给方法的调用者处理。

第一种方式:自行处理。
列子:把异常处理,程序避开了异常的代码块可以往下面走
public static void main(String[] args) {
           //test1();
          System. out .println( "test" );
           try {
               int num = 100/0;
              //这里出现了异常,catch的代码块不会在往下面执行
              System. out .println( "出现异常" );
          } catch (Exception e) {
             //出现了异常,程序走异常的的代码块
               System. out .println( "异常的代码" );
          }
           //由于异常被我们处理了,那么这里的代码块也是会执行的
          System. out .println( "5555555555" );
          //程序输出
          //test
          // 异常的代码
          //5555555555
     }
      不处理异常
public static void main(String[] args) {
          System. out .println( "test" );
          System. out .println( "异常出现前" );
           int num = 100/0;
          //上面出现了异常,由于没有处理异常。程序不能往下面走
          System. out .println( "出现异常" );
          System. out .println( "5555555555" );
          //程序输出
          //test
          //异常出现前
          //Exception in thread "main" java.lang.ArithmeticException : / by zero  at cn.gdie.Demo1.main( Demo1.java:9 )
          
          
     }
第二种:不处理,给调用者处理。这里需要注意,如果你抛出去的异常是运行时异常。那么调用者调用方法的时候不用强行处理。
public static void main(String[] args) {
     
     try {
test1();
} catch (Exception e) {
e.printStackTrace();
System.out.println("出现异常");

  }

        //代码输入

        // 异常前
        //java.lang.ArithmeticException: / by zero
//at cn.gdie.Demo4.test1(Demo4.java:16)
//at cn.gdie.Demo4.main(Demo4.java:7)
        //出现异常

}
      
      public static void test1()throws Exception{
     System.out.println("异常前");
     int num = 100/0;
     System.out.println("异常后");
      }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值