基本描述
异常体系的根类是:Throwable
Throwable:
|--Error: 重大的问题,我们处理不了。也不需要编写代码处理。比如说内存溢出。
|--Exception: 一般性的错误,是需要我们对编写的代码进行处理。
|--运行期异常: 在运行时出问题,需要修正代码
|--编译期异常,就是一般的异常(编译期异常)
Exception分为运行时异常(RuntimeException)和编译时异常
运行时异常,指的是在程序运行中才出现的异常,例如空指针异常NullPointerException,索引越界异常IndexOUtOfBoundException等等。
还有一类是编译时异常(除RuntimeException类及子类外的所有Exception类)。编译时异常,是必须要进行异常处理的异常(编译器会报错)。就是在编写代码时出现红线提醒,需要try-catch或者throws的异常。
Exception常用方法
注:catch关键字后面括号中的Exception类型的参数e
用除0异常展示下列各种输出
public static void main(String[] args){
int a=1;
int b=0;
try {
int c=a/b;
}catch (Exception e){
System.out.println("==================");
System.out.println(e.getCause());
System.out.println("==================");
System.out.println(e.getMessage());
System.out.println("==================");
System.out.println(e.toString());
System.out.println("==================");
e.printStackTrace();
}
}
e.getCause():返回抛出异常的原因。如果 cause 不存在或未知,则返回 null。
=======开始输出e.getCause()===========
null
=======结束输出e.getCause()===========
e.getMessage():返回异常的消息信息。
=======开始输出e.getMessage()===========
/ by zero
=======结束输出e.getMessage()===========
e.toString():返回异常类型和异常信息字符串。
=======开始输出e.toString()===========
java.lang.ArithmeticException: / by zero
=======结束输出e.toString()===========
printStackTrace():对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。
java.lang.ArithmeticException: / by zero
at com.yscredit.Test.main(Test.java:11)