Java中的异常和异常类

103 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、Java中的异常

为了便于理解首先提供一个出现异常的代码。

public class Abnormal {
    public static void main(String[] args) {
        int result=divide(4,0); //调用方法
        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 com.company.ObjectOrientedLast.Abnormal.divide(Abnormal.java:11)
//	at com.company.ObjectOrientedLast.Abnormal.main(Abnormal.java:5)

在程序块下方注释部分是运行后系统抛出的异常

在异常代码中我们可以知道异常的类别,其中该案例的异常属于ArithmeticException算数异常。算数异常顾名思义就是,出现违背数学运算的一般规律所出现的异常,如分母为“0”、开偶次方内为负数等。

注意:异常发生后,程序会立即结束,无法继续向下执行。也就是说如果某行代码发生了异常,那么该行代码运行之后(若未对异常进行处理)其后的语句将不再执行,即异常被抛出。

二、Java中的异常类

在Java中提供了大量的异常类,这些类都继承自java.lang.Throwable类。

Throwable体系架构:

image.png

1、Error代表程序中产生的错误:

Error类称为错误类,它表示Java运行时产生的系统内部错误或资源耗尽的错误,是比较严重的,仅靠修改程序本身是不能恢复执行的。

2、Exception代表程序中产生的异常

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

3、Throwable常用方法

String getMessage() 返回此 throwable 的详细消息字符串。 void printStackTrace() 将此 throwable 及其追踪输出至标准错误流。 void printStackTrace(PrintStream s) 将此 throwable 及其追踪输出到指定输出流。