更新时间:2022-04-21 来源:黑马程序员 浏览量:
在程序运行的过程中也会发生异常情况,例如运行时内存溢出、磁盘空间不足、网络中断等。针对此类状况,Java中提供了异常处理机制,以异常类的形式对这些不正常情况进行封装,通过异常处理机制对程序代码发生的各种问题进行有针对性地处理。接下来通过一个案例来了解一下什么是异常,如文件3-41所示。
文件3-41Example17.java
package com.itheima.example17; public class Example17 { public static void main(String[] args) { int res = calculate(5, 0); // 调用calculate()方法 System.out.println(res); } // 下面的方法实现了两个整数相除 public static int calculate(int a, int b) { int res = a / b; // 定义一个变量res记录两个数相除的结果 return res; // 将结果返回 } }运行结果如图3-21所示。
图3-21运行结果
从图3-21的运行结果可以看出,程序出现了算术异常(ArithmeticException),这个异常是由于在第4行代码调用divide()方法时传入了参数0,而在calculate()方法中,运算时出现了被0除的情况。程序出现异常后导致程序立即结束,无法继续向下执行。
在上一小节中产生的ArithmeticException异常只是Java异常体系中的一种,在Java中还提供了大量的异常类,这些异常类都是java.lang.Throwable类的子类。
接下来通过一张图来学习Throwable类的继承体系,如图3-22所示。
图3-22Throwable体系架构图
通过图3-22可以看出,Throwable有两个直接子类Error和Exception,其中Error表示程序代码中出现的错误,Exception表示程序代码中出现的异常。他们的区别在于,错误是指仅靠程序本身是不能恢复执行的,而异常是指通过程序本身可以处理的错误。