目录
Java异常是Java编程语言中用于表示程序运行时错误的一种机制。Java异常体系通过异常类和异常处理来实现,允许程序在遇到预期或意外情况时,优雅地处理问题,而不是立即终止程序运行。
1.Error
Error意味着是很难恢复的严重错误,一般不由程序处理
- VirtualMachineError:虚拟机运行错误
- AWTError:AWT组件出错,AWT是使用操作系统中的图形函数的抽象窗口工具
2.Exception
- RuntimeException:
- ArithmeticException:进行整数除以0的操作时,抛出ArithmeticException异常
- NullPointException:空指针异常,通常出现在对象没有实例化就进行调用
- ArrayIndexOutOfBoundsException:数组越界异常,要访问的数组下标超出数组长度允许范围时抛出
- IOException:输入,输出时可能会产生的异常
3.异常的处理
1.捕获并处理
try-catch-finally:
try{
//可能会产生异常的语句
}catch(Exception e){
//所有产生Exception类型的异常执行的代码
}finally{
//最终清理的语句
}
- try:会产生异常的语句
- catch:可以有多个,每个catch块会处理一种可能会抛出的特定类型的异常,如果在运行中try中的代码产生的异常与某个catch语句处理的异常匹配,则会执行该catch语句块
- finally:有无异常都会执行,一般用于释放资源,可以省略
2.抛出
将方法中会产生的异常抛出,调用该方法的程序将会接收到抛出的异常
public void trouble() throws Exception{
//代码块
}
如果被抛出的异常在调用程序中未被处理,则该异常就会沿着方法的调用关系继续上抛,直到解决,否则会将程序非正常的终止
4.捕获与抛出时机
捕获:通常在知道如何处理特定的异常、程序状态可以恢复,使程序继续进行有意义的操作。
抛出:无法处理或不应处理、强制调用时(可能需要返回一个不存在的对象)
5.throw与throws
throw:用于在代码中显式的抛出一个异常,当你想在某一个地方中断程序的一个流程,并报告一个错误时使用
throw new ExceptionType("异常信息");
- ExceptionType为自定义的异常类型,可以为内置异常,也可以为自定义异常
- 异常信息为要传递的具体信息
throws:用于在方法中声明可能会抛出的异常。如果一个方法内部调用了另一个会抛出异常的方法,或方法中需要抛出异常,就需要用throws关键字声明