编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

什么是异常

尽管人人希望自己身体健康,处理的事情都能顺利进行,但在实际生活中总会遇到各种状况,比如感冒发烧,工作时电脑蓝屏、死机等。同样在程序运行的过程中,也会发生各种非正常状况,比如程序运行时磁盘空间不足,网络连接中断,被装载的类不存在。针对这种情况,在Java语言中,引入了异常,以异常类的形式对这些非正常情况进行封装,通过异常处理机制对程序运行时发生的各种问题进行处理。接下来通过一个案例来认识一下什么是异常,如例所示。

public class Example {
    public static void main(String[] args) {
        int result = divide(4, 0); // 调用divide()方法
        System.out.println(result);
    }
    // 下面的方法实现了两个整数相除
    public static int divide(int x, int y) {
        int result = x / y; // 定义一个变量result 记录两个数相除的结果
        return result; // 将结果返回
    }
}

运行结果:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at Example.divide(Example.java:9)
    at Example.main(Example.java:3)

从运行结果可以看出,程序发生了算数异常(ArithmeticException),这个异常是由于程序中的第3行代码调用divide()方法时传入了参数0,在方法中的第8行代码的运算中出现了被0除的错误。在这个异常发生后,程序会立即结束,无法继续向下执行。

例中产生了一个ArithmeticException异常,ArithmeticException异常只是Java异常类中的一种,在Java中还提供了大量的异常类,这些类都继承自java.lang.Throwable类。接下来通过一张图来展示Throwable类的继承体系,如图所示。

java Throwable类的继承体系

通过图可以看出,Throwable有两个直接子类Error和Exception,其中Error代表程序中产生的错误,Exception代表程序中产生的异常。接下来就对这两个直接子类进行详细讲解。

  • Error类

Error类称为错误类,它表示Java运行时产生的系统内部错误或资源耗尽的错误,是比较严重的,仅靠修改程序本身是不能恢复执行的。举一个生活中的例子,在盖楼的过程中因偷工减料,导致大楼坍塌,这就相当于一个Error。

  • Exception类

Exception类称为异常类,它表示程序本身可以处理的错误,在开发Java程序中进行的异常处理,都是针对Excption类及其子类。在Exception类的众多子类中有一个特殊的RuntimeException类,该类及其子类用于表示运行时异常,除了此类,Exception类下所有其他的子类都用于表示编译时异常。本节主要针对Exception类及其子类进行讲解。

通过前面的学习我们已经了解了Throwable类,为了方便后面的学习,接下来将Throwable类中的常用方法罗列出来,如表所示。

Throwable类的常用方法

表中的这些方法都用于获取异常信息。由于Error和Exception 继承自Throwable类,所以它们都拥有这些方法,在后面的异常学习中会逐渐接触到这些方法的使用。


未经允许不得转载: 技术文章 » Java编程 » 什么是异常