本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、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体系架构:
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 及其追踪输出到指定输出流。