java异常有三种类型:
1检查性异常,
2运行时异常,
3错误
所有的异常类是从 java.lang.Exception 类继承的子类。
Exception 类是 Throwable 类的子类。除了Exception类外,Throwable还有一个子类Error 。
Java 程序通常不捕获错误。错误一般发生在严重故障时,它们在Java程序处理的范畴之外。
Error 用来指示运行时环境发生的错误。
例如,JVM 内存溢出。一般地,程序不会从错误中恢复。
异常类有两个主要的子类:IOException (输入异常)类和 RuntimeException(路径异常) 类。
java自己定义了一些内置异常类于java.lang包中,有检查性异常和非检查性异常。
捕获异常:
使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。
一个try后面跟随多个catch代码块就就叫做多重捕获
try/catch代码块中的代码称为保护代码。格式:
try
{
// 程序代码
}catch(ExceptionName e1) //ExceptionName(异常类型)e1(异常变量名)
{
//Catch 块
}
如果保护代码中发生异常,异常被抛给第一个 catch 块。
如果抛出异常的数据类型与 ExceptionType1 匹配,它在这里就会被捕获。
如果不匹配,它会被传递给第二个 catch 块。
如此,直到异常被捕获或者通过所有的 catch 块。
如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明
注意:
try, catch, finally 块之间不能添加任何代码。
JVM异常和程序级异常——通用异常
其他就觉得差不多了,关于异常的面试题我在学步园看到了,作者整理的非常好,现在给出连接:https://www.xuebuyuan.com/3248044.html
自己后面面试的时候再看看,应该这方面考的不是非常多。