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, "执行出错");
    }
}
 
posted @ 2020-03-14 16:21  我是小白ee_zx  阅读(195)  评论(0)    收藏  举报