Java异常 Exception

概念

程序所发生的错误

分类

  • 编译时异常:编译期间,某段代码发生问题,需要提前给出解决方案,否则编译不通过;
  • 运行时异常:编译通过,运行出错

体系结构

Throwable:
	Error:严重性错误
	Exception:
		RuntimeException: 运行时异常
		!RuntimeException: 编译时异常

异常产生的原理

  • Java对异常的默认处理方式,是将问题抛给上一级调用者;
  • 抛出之前,java会根据错误产生的异常类,创建出该类的对象,底层通过throw关键字将异常抛给上一级,不断向上抛出,直到抛给JVM虚拟机,虚拟机拿到问题对象后,将错误的原因和位置打印在控制台

异常处理的方式

  1. 问题可以自己处理的:
    • Try catch:不会影响后续代码执行
  2. 问题自己处理不掉的
    • Throws抛出方式:
      • Throw抛出异常给上一级调用者;此时必须在方法上用throws+异常类名来声明该方法存在异常;
      • 如果抛出的是runtimeException则不需声明

问题扩展

  • Spring框架的事务默认是runtimeException才进行回滚
    解决办法:@Transactional(rollbackFor=(Exception.class))

自定义异常

  • 利用throw抛出自定义异常;目的是规范的异常类名,根据异常类名可分析出问题原因
  • 找一个类,继承Exception或者runtimeException即可
posted @ 2022-02-08 14:57  蓝天可乐  阅读(38)  评论(0编辑  收藏  举报