常见的异常

**

异常

**
异常是程序运行过程中出现的一种错误,有些同学还搞不懂编译时错误和运行时错误,下面给大家做一个简单的阐述:
编译时错误:代码示例

public class LianXi{
    public static void main(String[] args) {
        int a = 10;
        int b ;
        System.out.println(a / b);
    }
}

运行结果
在这里插入图片描述
此处b没有初始化,不能通过编译。
注:在编译过程中,如果编译通过,一定不存在编译错误。
运行时错误代码示例:

public class LianXi{
    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        System.out.println(a / b);
    }
}

运行结果:
在这里插入图片描述
我们都知道,0不可被当做除数,所以此处虽然编译通过但是运行错误。
注:在运行过程中,如果当时没有出现错误,不代表后面就没有错误,自己的机器上没有出现错误,不代表别人的机器上没错误。

下面我们进入正题,首先我们一起看几个常见的异常
1,算数异常

  public class TestException{
    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        System.out.println(a / b);
    }
}

运行结果如下
在这里插入图片描述
2,数组下标越界异常

 public class TestException{
    public static void main(String[] args) {
        int[] a = {1,2,3};
        System.out.println(a[100]);
    }
}

运行结果如下:
在这里插入图片描述
3,空指针异常

 public class TestException{
    public static void main(String[] args) {
         int[] a = null;
           System.out.println(a[0]);
    }
}

运行结果如下:
在这里插入图片描述
异常的具体语法
主要涉及的几个关键字

  1. try:try语句块中放置可能会抛出异常的代码
  2. catch:catch语句块中用来处理异常的代码,try和catch往往要搭配使用,当try中出现异常的时候就会进入catch中执行。
  3. throw:主动抛出一个异常对象(java的异常本质上就是一个一个的对象)。
  4. throws:某个方法可能会抛出某些异常。
  5. finally:一般用于异常处理完毕后的收尾工作。
    下面一起来看几个实例:
    实例一:如果代码中出现了异常,并且没有使用try catch,异常就会由JVM自己来处理,程序就会被终止,不会继续往下走
 public class TestException{
    public static void main(String[] args) {
         int[] a = null;
           System.out.println(a[0]);
           System.out.println("异常之后的代码");
    }
}

运行结果如下:
在这里插入图片描述
我们从运行结果可以看出,当抛出异常之后,程序直接被终止并没有打印出下面的“异常后的代码”
实例二:代码中可以使用try把可能抛出异常的代码包裹起来,使用catch来处理这样的异常

 public class TestException{
    public static void main(String[] args) {
         try {
           System.out.println("try中异常之前的代码");
           int[] a = null;
           System.out.println(a[0]);
           System.out.println("try中异常之后的代码");
       }catch (NullPointerException e){
           System.out.println("catch中的代码");
       }
        System.out.println("Hello");
    }
}

运行结果如下:
在这里插入图片描述
我们可以了解到try catch的执行顺序
1.先执行try中的代码(按顺序执行)。
2.执行try代码的过程中,如果出现异常就会进入到catch执行,try中剩下的代码就不再执行了。
3.当catch也执行完毕后,就会继续执行后续的代码,程序异常没有终止。
实例三:catch中异常的类型需要和抛出的异常类型匹配才能正确处理,否则执行不到catch中的逻辑

public class TestException{
    public static void main(String[] args) {
        try {
           System.out.println("try中异常之前的代码");
           int[] a = {1,2,3};
           System.out.println(a[100]);
           System.out.println("try中异常之后的代码");
       }catch (NullPointerException e){
           System.out.println("catch中的代码");
       }
        System.out.println("Hello");
    }
}

运行结果如下:
在这里插入图片描述
作者能力有限,本次先分享到这里,如有错误或补充请在评论区留言,不胜感激,编程不易,我们一起努力!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值