java异常指在程序运行过程中出现的各类易于正常情况的事件,导致Java指令运行出错
所有的异常类都继承自Throwable。
Throwable下两个子类
Error:指系统错误通常此类错误不可处理。常见的栈溢出StackOverFlowError OutOfMemoryError
Exception:可以处理的异常
检查性异常 检查性异常直接继承自Exception。程序必须对其显示的进行处理
通常检查性异常是可以预知的异常
处理方式:
1、使用try{}catch{}进行捕获
使用try包裹可能出现异常的代码
使用catch快中指定捕获的异常,如果try块中发生的异常为catch块中捕获的异常或该类型的子类型则会进入catch块中
catch块中写异常之后的业务逻辑
可以同时有多个catch块同时捕获异常,catch块需要注意先后顺序,先小后大,因为异常匹配不是精确匹配
有一个catch块捕获了异常之后就不会往后去匹配了。
e.printStackTrace()将异常信息打印在控制台上
finally代码块不管是否发生异常,最终都会执行的代码块代码块,通常用来做资源的释放
除非在finally代码块执行之前有调用System.exit()方法否则都会执行
如果finally中有return则以finally中的return为主
2、在方法定义时声明抛出异常 如果声明向上抛出异常那么方法的调用者必须对该方法的异常进行处理。
如果异常发生没有任何的方法对其进行捕获处理那么该异常将导致程序结束。
运行时异常 程序运行过程中发生的异常,继承自RunTimeException,编译期间检测不到,不需要进行显示处理。
通常是因为代码错误导致的。
Throws在方法定义时声明异常
Throw在方法代码中抛出异常
自定义异常
如果继承Exception则为自定义检查性异常
如果继承RunTimeException为自定义运行异常
原文:https://www.cnblogs.com/ljqsbk/p/13555974.html