类来进行拦截 。
之前在排查问题的时候 , 有个问题死活排不出来 , DeBug的时候一直没进catch模块 。后来我学长就说:“要不你改成Throwable试试?
try {} catch (Throwable e) { }我就很疑问 , 说:“为啥要改成Throwable呢?我们用Exception不就可以捕获所有的异常了么 , Exception是Throwable的一个子类 , 但Exception已经是包含所有的Java异常了呀”
众所周知 , Throwable有两个子类:
- Error(一般我们都会把这个忽略掉...一般情况下出现了Error程序都运行不起来)
- Exception
说明:通过反射机制来调用方法 , 如果找不到方法 , 抛出 NoSuchMethodException 。什么情况会抛出大概的意思就是说:调用 RPC、二方包、或动态生成类的相关方法时 , 可能直接抛出的是Error , 而catch Exception是无法捕获得到的 。
NoSuchMethodError 呢?二方包在类冲突时 , 仲裁机制可能导致引入非预期的版本使类的方法签名不匹
配 , 或者在字节码修改框架(比如:ASM)动态创建或修改类时 , 修改了相应的方法签名 。这些情况 , 即
使代码编译期是正确的 , 但在代码运行期时 , 会抛出 NoSuchMethodError 。
推荐阅读
- Java中final关键字的几种用法
- Java NIO的三种Reactor线程模型分析
- 在Kubernetes上构建和部署Java Spring Boot微服务
- 「一图详解」收藏!一份关于小规模纳税人减征增值税的学习笔记
- 收藏这5个学习APP,每天偷偷给自己充电,做更优秀的自己
- Java架构-MYSQL大数据量下的操作与优化
- Java性能优化-掌握JMH
- 二分之一怎么打
- 如何安装linux
- JAVA的反射和注解
