Error和Exception
软件程序在运行过程中,可能会遇到许多问题,我们叫做异常(Exception)
异常指程序运行中出现的不期而至的各种情况,如:文件找不到,网络连接失败,非法参数等
三种类型的异常:
- 检查性异常:最具代表性的就是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个文件时,文件不存在,就会发生异常,这些异常在编译的时候不能被简单忽略
- 运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略(在编译时看不见,只能在运行中才能看到)
- 错误:错误不是异常,错误是脱离程序员控制的问题。错误在代码中经常被忽略。例如:栈溢出,错误在编译时也找不出来
异常体系结构
Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超标
**在Java API中定义了两种异常,错误Error和异常Exception
Error
Exception
异常处理机制
异常处理五个关键字:try、catch、finally、throw、throws
try和catch一起,可以不要finally,finally用在IO流,资源,关闭的情况
- 抛出异常:throw,throws
- 捕获异常:假设要捕获多个异常:从小到大
自定义异常
用户自定义异常类,只需继承Exception类即可
在IDEA中,如果出现波浪线的话,可以通过Alt+Enter来改正
总结:
- 处理运行时异常时,采用逻辑去合理规避同时辅助 try-catch 来处理
- 在多重catch后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
- 对于不确定的代码块,也可以使用try-catch,处理潜在的异常
- 尽量去处理异常,而不是简单的调用 printStackTrace()去打印输出
- 根据不同的需求去具体处理异常
- 尽量添加finally语句块去释放占用的资源