博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Java基础]Java异常捕获
阅读量:6595 次
发布时间:2019-06-24

本文共 2371 字,大约阅读时间需要 7 分钟。

在Java中,异常分为二类:Error和Exception, Exception是运行时异常,Error是JVM内部错误,捕获Exception没法捕获Error

Throwable | | Error Exception | RuntimeException

今天我在项目中就遇到了一个问题,如下:

try {                    //更新log                    PullUpdateLogVO vo = new PullUpdateLogVO();                    vo.setNotifyId(notification.getNotifyId());                    vo.setQueryStatus(pullDataResult != null ? pullDataResult.getStatus() : 3);                    vo.setQueryTime(queryTime);                    vo.setRespSerial(pullDataResult != null ? pullDataResult.getRespSerial() : "");                    vo.setUserid(notification.getUserid());                    String res = getValidateService().pullUpdate(vo);                    logger.info(String.format("更新任务查询状态成功: log = %s", res));                } catch (Exception ex) {                    logger.warn(String.format("更新任务查询状态失败:ex=%s", ex.getMessage()));                }

打印出异常信息,如下图所示:

Exception in thread "Mq-MqQueueExcutorServiceNew-DataChannel-PullDataNotify-104-3" java.lang.NoSuchMethodError: com.ppdai.cbd.thirdparty.pulldata.common.request.PullUpdateLogVO.setUserid(Ljava/lang/Integer;)V    at com.ppdai.realtime.datachannel.pullservice.PullNotificationDispatchService.dispatchNotification(PullNotificationDispatchService.java:122)    at com.ppdai.realtime.datachannel.mq.service.MessageQueueConsumer.onMessageReceived(MessageQueueConsumer.java:51)    at com.ppdai.infrastructure.mq.client.biz.MqQueueExcutorService.doMessageReceived(MqQueueExcutorService.java:461)    at com.ppdai.infrastructure.mq.client.biz.MqQueueExcutorService.doDealMsg(MqQueueExcutorService.java:408)    at com.ppdai.infrastructure.mq.client.biz.MqQueueExcutorService.handleMessage(MqQueueExcutorService.java:369)    at com.ppdai.infrastructure.mq.client.biz.MqQueueExcutorService.access$600(MqQueueExcutorService.java:48)    at com.ppdai.infrastructure.mq.client.biz.MqQueueExcutorService$3.run(MqQueueExcutorService.java:308)    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)    at java.lang.Thread.run(Thread.java:748)
NoSuchMethodError就是典型的JVM内部错误,属于Error的范畴,一般这种问题编译器就应该解决,Java Class编译文件class文件函数找不到错误。Error类层次如下:

 

          • NoSuchMethodError
解决办法:1.将捕获Exception改成捕获Throwable  2.另一种将依赖包类添加对应方法

 

转载于:https://www.cnblogs.com/zhengwangzw/p/10594677.html

你可能感兴趣的文章
Ubuntu安装新版本nodejs的5种姿势
查看>>
最长回文(通过比较原字符串和其翻转字符串)
查看>>
jedis+java
查看>>
Format Conditions按条件显示表格记录
查看>>
Angular Material
查看>>
IOS5开发-UIScrollView添加单击事件的方法
查看>>
pjblog支持QQ、新浪微博一键登录
查看>>
深入浅出Node.js (附录D) - 搭建局域NPM仓库
查看>>
Java Web整合开发(36) -- Web Service框架XFire
查看>>
WEB开发:Java与Php对比
查看>>
洗礼灵魂,修炼python(44)--巩固篇—反射之重新认识hasattr,gettattr,setattr,delattr...
查看>>
java使用ssh访问Linux的项目jscraft
查看>>
FreeSWITCH在会议室中持续播放音频文件
查看>>
SharpDevelop的亮点—优化提示
查看>>
linux命令之netstat
查看>>
dp入门(先摆在这里,之后细细读)
查看>>
学生成绩的快速录入(构造函数)
查看>>
[Contest20180415]看无可看
查看>>
每次从vss获取文件都是只读
查看>>
Building tools为什么是主流
查看>>