05.异常

什么是异常?

异常就是在程序的运行过程中发生的不正常事件,如所需文件找不到,网络连接不通或中断、算术运算出错(如被零除)、数组下标越界、装载了一个不存在的类,对null对象进行操作,类型转换异常等。异常会中断正在运行的程序。


Java的异常处理是通过5个关键字实现的:try、catch、finally、throw、throws

1.try-catch

try—执行正确的代码,如果出现问题,则不再执行try中剩余的代码,而去执行catch块中的代码

catch – 当程序出现异常时,会执行catch块中的代码,作用:提示错误信息

finally – 一般用于程序结果时的操作,无论程序是否发生异常,都会执行finally中的代码,如果程序执了

System.exit(1); (退出程序),退出java虚拟机,finally中的代码不一定是最后一步执行.比如catc中有return


方法名 说明
void printStackTrace() 输出异常的堆栈信息
String getMessage() 返回异常信息描述字符串,是printStackTrace()输出信息中的一部分

常见的异常类型:

异常类型 说明
Exception 异常层次结构的父类
ArithmeticException 算数错误情形,如以0作除数
ArrayIndexOutOfBoundsException 数组下标越界
NullPointerException 尝试访问null对象成员
ClassNotFoundException 不能加载所需的类
IllegalArgumentException 方法接收到非法参数
ClassCastException 对象强制类型转换出错
NumberFormetException 数字格式转换异常,如把”abc”转换成数字

2.throws (声明异常)

声明抛出异常,写在方法名后面,抛出的异常,调用者需要捕获处理异常,如果调用者都不去捕获处理异常,则最后由Java虚拟机去处理


3. throw (抛出异常)

在Java中可自行使用throw自行抛出异常,程序中没有的异常,可以自己去定义


开源日志记录工具(SQL日志、异常日志、业务日志)

  1. 添加log4j的jar——>class
  2. 创建log4j的配置文件——>log4j.properties
  3. 编写配置文件
  4. 在项目中使用

使用log4j:

1
2
3
4
5
Logger logger = Logger.getLogger(类名.class);
logger.debug();
logger.info();
logger.warn();
logger.error();