Java异常、SpringBoot中全局捕获处理异常

Java异常

首先程序错误分为三种:

<pre class="hljs" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 0.75em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">1/0

继承结构

首先异常的父类是 Throwable ,然后两个子类, Error 和 Exception 。其中Error(错误)是JVM中系统的异常,这些错误是不可控的,一般程序出现死循环或者线程死锁之类会导致出现此类错误。

然后 Exception 中又分为两大类:运行时异常( RuntimeException )、非运行时异常( IO异常、SQL异常 等)。 运行时异常 这种系统异常可以处理也可以不处理,所以编译器不强制用try…catch处理或用throws声明。

但是非运行时异常(又称编译异常),如IOException等,这种异常必须要显式的解决或抛出,要么自己try-catch解决,要么把异常抛出去交给jvm来解决,无论如何必须要处理这种异常。 编译器会强制让我们进行处理的 。

那么可以得知:首先 Error中的错误 是我们无法手动处理的,只能通过优化代码等方式调整,然后 Exception中的RuntimeException 是可以不进行try-catch或throws处理的,那么某一层面上可以说这两种错误是 非受查异常 ,也就是编译器不会进行检查的异常。

而 Exception中的IOException等 是编译器一定会进行检查且必须让我们手动处理(解决异常或抛出异常给jvm)被称之为 受查异常 。

如何处理异常

运行时异常(系统异常) 不需要预处理,通过规范的代码可以避免产生这种异常

受检异常(编译时异常) 必须预处理,否则编译报错,有两种处理方式 :

  • 捕获处理
  • 抛出异常

处理异常

<pre class="prettyprint hljs xquery" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, &quot;Courier New&quot;, monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; overflow-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">try { 

} catch (OneException e) { 

} catch (TwoException e) { 

} finally { 

}
  • try中包含了可能产生异常的代码
  • t
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值