您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
Java程序出错了,定位错误有哪些技巧?
错误,代码,日志Java程序出错了,定位错误有哪些技巧?
发布时间:2020-12-06加入收藏来源:互联网点击:
Logstash:开源日志搜集、分析、过滤框架,支持多种数据输入输出方式。用于收集日志,对日志进行过滤形成结构化数据,并转发到elasticsearch中
Kibana:开源日志报表系统,对elasticsearch以及logstash有良好的web页面支持。
一个简单的ELK应用架构图:
图来网,侵删。
4、补充一点心得之谈,出错了以后静下心来仔细思考为什么出现错误,最好的解决和最快的解决方式都有什么,主动给出方案建议利弊,会很出彩。
回答于 2019-09-11 08:43:50
已经出错了,那首要做的就是解决掉这个问题,至于定位错误的技巧,我觉得这个要根据你的情况来,是生产环境?测试环境?还是本地?
生产环境出错
这种情况的报错,一般都是在不经常犯错的地方抛出了异常,因为既然是生产环境,那么在程序使用前,一定是至少经过开发本地测试、测试人员验证、正式上线三个步骤。这三个步骤以后,一般常规的错误肯定已经被解决了。那么现在出错的原因,多半就是一些极其特殊的情况,比如:客户骚操作、机房网络策略异常、时间日期跨度(有些bug只会出现在年头或者年尾)。排查的方法首先就是看常规日志有没有明显报错,结合记录的客户操作类日志,及数据库数据更新日志进行排查。
测试环境出错
这种情况下出错,相比生产环境要好很多,因为只是测试环境,不至于那么紧张。解决这类问题,可以采用“顺藤摸瓜”的方法,首先还原报错产生的条件,什么情况下会出错误,根据操作步骤,我们可以很快定位到出错的代码块,仔细排查代码逻辑,到底是哪里有问题。测试环境出错,在处理问题的时间上相比正式环境,是很有优势的,加上可以还原,所以处理问题也更容易。
本地开发出错
如果是自己本地代码出错,那就直接采用最简单快捷的方式了,代码调试。使用编辑器自带的调试功能,加上断点,一步步走代码逻辑,查看各处代码值是否正常。一般来讲,本地开发最常见的错误莫过于空指针异常了,往往一番加断点打日志排查后,发现是自己写的小bug。相比上面两种情况,本地是最好解决的。
回答于 2019-09-11 08:43:50
一般有这几种方法:
1.通过输出语句,来确定错误语句位置,比如System. out. println(“------------------”),在程序上下多处加入此语句当然为了可以适当修改比如横线换成#。看看控制台的打印,那块没有没有打印,那么它上面代码有错误。这种不能看到详细信息,比如变量的传递。
2.通过控制台输出的错误信息,点击会跳到对应的错误代码,来判断怎么出错的。这种方法对程序逻辑错误不好判断。
3.通过开发工具比如eclipse,在方法下面打一个断电,通过debug运行,来调试代码,此方法也是程序员经常使用的方法,可以清楚看到变量的传递,方法调用,包括阅读源码经常用到。此方法如果走的太快了,跳过去,可能要重新运行一遍debug。
回答于 2019-09-11 08:43:50
很高兴能回答这个问题:
定位分析错误能力是一个合格的Java程序员应该必须具备的能力;通俗来讲Java程序出错也分几种类型:代码自身编写出错,代码逻辑出错导致编译出错不能通过,程序运行时出错,下面我们来讲一下如何处理这些错误信息:
1.代码编写错误应该算比较好找出来的错误,主要是语法运用,框架使用配置,分层编写逻辑与注入这几个地方会出现错误一般现阶段很多编写代码软件都会自动提示出来排查晚上就可以了,也比较考验程序员编写代码的功底,一个合格的程序猿一般很容易处理这些问题
2.代码编译错误指的是编写未见错误但是编译不通过,一般情况多数是由,一些依赖等一些配置文件未正常引入导致的,或者对一些路径处理不妥当或者是持久层框架注解不当或缺失,对象初始化等很多问题造成,控制台会对错误进行简单定位自己去排查就可以了,错误种类比较多就不一一解释
3.程序运行时异常范围比较广最基础的就是代码环境未配置妥当,缺少配置,多线程引入未处理妥当,程序设计不合理,对象重复自身调用造成宕机,堆栈异常,或者分布式项目在运行时未配置好项目之间的互相依赖造成种种错误,这些异常处理起来比较麻烦需要根据日志信息或者测试环境下debug模式按顺序一一排查,最终解决错误
以上是我的拙见,代码写的越多一些设计运用得当,编写功底扎实,这些错误也就出现的很少,或者能快速解决,谢谢!
回答于 2019-09-11 08:43:50
一般有这几种方法:
1.通过输出语句,来确定错误语句位置,比如System. out. println(“------------------”),在程序上下多处加入此语句当然为了可以适当修改比如横线换成#。看看控制台的打印,那块没有没有打印,那么它上面代码有错误。这种不能看到详细信息,比如变量的传递。
2.通过控制台输出的错误信息,点击会跳到对应的错误代码,来判断怎么出错的。这种方法对程序逻辑错误不好判断。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |