来源:达内教育IT培训大连分校
时间:2023/2/9 13:38:03
想学Java开发就到达内教育,凭借雄厚的技术研发实力,过硬的教学质量,成熟的就业服务团队,为学员提供强大的职业竞争力,在用人企业中树立了良好的口碑.为不影响您的学习,来校区前请先电话或QQ咨询,方便我校安排相关课程的专业老师为您解答!
Java程序定位错误有哪些技巧
1.日志是基础
当程序报错,较简单且的方法就是查询日志中的报错信息了;所以我们在敲代码的时候,一定不能对 CheckedException 只捕捉不处理。
首先不要忽略异常,可以在捕捉到异常后将日志信息输出,要么通过 Throw 或 throws 向上抛,让上层的代码进行处理;
接上,不要捕捉异常后,输出完日志又向上抛出异常,这样当查询定位错误时,会产生误导;
对于捕捉到的异常,较好可以地指出具体是什么异常,而不要用 catch(Exception e) 替代;
如果选择了输出异常,那么就要把异常单独打印到一个日志文件中,否则你很可能需要在堆日志文件中翻阅查找;
另外,日志信息尽可能的详细,比如方法的入参、与其他系统交互的报文等等。
如果你能在日志文件中的找到报错信息的话,那么再定位错误程序就容易很多:
通常异常输出能看到报错的类、方法、甚至代码行数,可以先检查程序是不是有显而易见的错误;
如果是开发测试环境,可以通过 IDE 进行代码调试,如果错误每次都可以复现,那就是一个明显的 BUG,如果是部分数据有问题,那么就要分析是程序不严谨,还是数据有问题;
如果是生成环境的话,我们很难进行线上调试,那么只能通过日志来进行具体的分析了,条件允许的话,可以把生成环境的数据拿下来进行检查和调试。
2.完善的监控
很多程序员会说,我的日志都很完善了,还需要监控么?我建议较好是有的,而且监控越完善越好。
首先,通过日志查询问题,通常都是业务人员或用户在操作过程中遇到问题,找到运维和开发之后,我们再去翻日志;如果有监控的话,可以实时地发现问题,提前解决问题。
二,现在很多项目都不是单台部署,应用部署个几台、几十台甚至几百台都很常见,当发现问题之后,人肉翻日志已经不太现实了,如果有一个日志平台的话,那就会方便很多。
三,很多公司的项目都是分布式架构、微服务架构,越来越多的服务都是链路调用,A系统调B系统,B系统再调C系统和D系统,这种情况下翻一个服务的访问链路,就需要从几个系统上拿日志,人肉运维是很费时费力的。
版权所有:搜学搜课(www.soxsok.com)