JAVA中异常处理机制
什么是异常: 程序的不正常
异常分类:
编译时异常:编译期间,编译器检测到代码的不正常
运行时异常:编译通过,代码运行时出错
体系结构:
Throwable(顶级)
Error:严重性问题
Exception:(常见)
RuntimeException:运行时异常
!RuntimeException:编译时异常
异常产生的原理
java对异常的处理方式:将问题抛给上一级,抛出之前,java会根据错误产生的异常类创建该类的对象,底层通过throw关键字将异常抛出给上一级,不断向上抛出.
异常的处理方式:
能处理: try...cath ,自己将问题解决,不会影响后续代码执行
不能处理: 使用throws抛出处理,如果发现问题自己无法完美解决,可以使用throw关键字,将异常对象抛出给调用者,但如果使用throw抛出异常对象,方法上必须通过throws声明.
如果跑出的异常对象是RuntimeException,方法无需throws声明
框架spring异常处理
spring框架的事务默认是RuntimeException才进行回滚, 这时候需要修改@Transactional注解中的rollbackFor属性可以指定为Exception异常回滚
在项目中异常的处理方式:
统一异常处理类:
解决电脑运行时出现的异常处理,
1:try..Catch 需要在每个类上添加,麻烦
2:在类使用@ControllerAdvice springMVC 4.2版本以上可以使用,它会处理该工程中的异常统一处理
/**
* 统一异常处理类
*/
@ControllerAdvice
public class BaseExceptionHandler {
// 处理异常的类
@ExceptionHandler(value = Exception.class)
@ResponseBody //josn字符串
public Result error(Exception e){
e.printStackTrace();
return new Result(false, StatusCode.ERROR, "执行出错");
}
}

浙公网安备 33010602011771号