异常和处理

一.异常以及异常处理机制介绍

异常:程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。

异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。
Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手动抛出的,只要在Java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。

Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内建了一些常用的异常类,我们也可以自定义异常。引用地址

Throwable又派生出Error类和Exception类。

错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。

异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。

二.异常产生的原因

在 Java 中一个异常的产生,主要有如下三种原因:

  1. Java 内部错误发生异常,Java 虚拟机产生的异常。
  2. 编写的程序代码中的错误所产生的异常,例如空指针异常、数组越界异常等。这种异常称为未检査的异常,一般需要在某些类中集中处理这些异常。
  3. 通过 throw 语句手动生成的异常,这种异常称为检査的异常,一般用来告知该方法的调用者一些必要的信息。

下面,使用除法来展示异常产生:

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

结果:

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at Division.main(Division.java:7)

由上可以看出,当除数为零时,抛出了ArithmeticException运算异常,这就是第二种编程过程中可能会出现的异常,我们把代码改一下

public class Division {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        int c = 0;
        try {
            c = a/b;
            System.out.println(c);
        }catch (ArithmeticException e){
            System.out.println("除数不能为0");
        }
    }
}

结果:

将可能出现异常的地方用try{}catch(){}分开,用于出现异常的时候自己能够找到地方。

当然,一般来说,一些平常的异常编译器都能在发现的时候抛出,并不需要我们特别地去写入,这些写入一般都是为了方便开发过程中对某些区块的测试工作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值