java程序报错后的排错思路

  目前总结出来三个字:看日志! 而且是从左到右一个单词一个单词的看。


  举个例子:
  Spring框架下的一个Demo,启动时报出了以下错误。
在这里插入图片描述


一、看异常类型
在这里插入图片描述
  首先,能看到异常是从引入的SpringFramework依赖中报出来的,具体的路径在黑框中,可以看到关键类“beans”、“factory”、“xml”以及异常类“XmlBeanDefinitionStoreException”。
  从关键字可以大致推测,问题是在Bean工厂获取Bean对象前后这个时间段出现的,并且获取Bean对象的方式和xml配置文件有关。具体的异常类型是“XmlBeanDefinitionStoreException”,直接翻译过来的意思是:Xml Bean定义存储异常。问题范围就缩小到在xml中定义bean的方式有问题了。
  仅仅是黑框中的异常类路径,就暴露了这么多的信息,所以排错时看日志至关重要。


二、看具详细误信息
在这里插入图片描述

Line 21 in XML document from class path resource [beanFirst.xml] is invalid; nested exception is org.xml.sax.SAXParseException;
lineNumber: 21;
columnNumber: 74;
cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 ‘c:bean’ 的声明。

  在[beanFirst.xml]这个配置文件中的第21行出错了,这个详细错误信息是SAXParseException异常类告诉我们的,SAX(针对XML的简单API)是基于事件为XML文档的解析器,那么定义错误已经精准定位到beanFirst.xml的第21行了,后面又提示“通配符的匹配很全面, 但无法找到元素 ‘c:bean’ 的声明。” “通配符匹配的很全面”是说,我们在xml中有关通配符的写法没有问题,全都匹配上了。
在这里插入图片描述

  问题出在元素“c:bean”的声明上,没有这个元素的定义。
在这里插入图片描述

  我们看到“bean”标签是“beans”下的一个子标签;“c:”是引入了一个Spring自定义的xml依赖,命名空间依赖是全的。而且IDEA没有帮我们排查出错误,这个元素下没有红线、错误提示信息。
  回顾第一步,错误类型说明是bean的定义方式不正确,所以推测"c:bean"这种写法不符合规范。


  详细错误信息是谁提供给我们的呢?
  Application类中test02方法的执行产生了异常对象,第一行是产生异常对象的类,后面的类通过throws关键字将异常对象一层层抛上来。实际上是通过递归的方式。
在这里插入图片描述
点开第一个类,找到指定的行数,可以看到异常对象被实例化了出来。
在这里插入图片描述


三、具体问题具体分析
  到这一步问题已经锁定了,很多情况下锁定问题是很困难的,但是只要锁定了问题,解决问题就有针对性,只差解决问题的方案。
  很多人用尝试代替学习,一遇到问题就借助搜索引擎,尝试几种方法后蒙对一次就算解决了,下次遇到类似问题,依然像第一次解决这类问题一样来回尝试。所以总结排错方法很重要,下次面对相似错误的变形,我们依然可以通过上面那套思路锁定问题,大大节省效率。靠尝试代替学习的人工作效率低,靠加班解决问题,岁数大了以后加不动班,或者靠加班也解决不了问题。加班不是努力的表现,过去我也经常加班,从现在起不想再加班了,为此我要优化我的工作方法,以后还会继续做总结,希望大家新的一年都有进步。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Linux系统中常见的报包括但不限于以下几种: 1. Command Not Found:命令未找到,可能是因为命令没有安装或者安装路径不在环境变量中。 解决方法:检查命令是否安装,如果未安装则使用包管理器进行安装,如果已安装则检查环境变量是否正确。 2. Permission Denied:权限不足,可能是因为当前用户没有执行该操作的权限。 解决方法:使用root用户或者具有执行权限的用户进行操作。 3. Connection Refused:连接被拒绝,可能是因为目标主机没有开启服务或者防火墙阻止了连接。 解决方法:检查目标主机是否开启了对应的服务,如果是防火墙阻止了连接则需要修改防火墙规则。 4. File Not Found:文件未找到,可能是因为文件不存在或者路径不正确。 解决方法:检查文件是否存在,如果路径不正确则修改路径。 5. Out of Memory:内存不足,可能是因为系统内存不足或者进程占用了过多的内存。 解决方法:增加系统内存或者优化进程内存使用。 针对以上报,可以采取以下排错思路: 1. 了解报信息并确定问题类型。 2. 检查相关配置文件是否正确配置,并确认是否有相关日志输出。 3. 使用命令行工具进行测试,例如ping、curl等。 4. 检查系统日志,了解系统状态。 5. 如果以上方法均无法解决问题,则可以使用搜索引擎或者向相关社区寻求帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏诗曼CharmaineXia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值