识别和调试问题的提示

似乎一些/许多开发人员尚未开发(确定双关语)一组好的技术来识别和解决问题。 即使在简单的程序中,也总是会出现问题。 最近,我一直在回答有关StackOverflow的很多问题,这些问题证实了我的怀疑。 这里的一些建议听起来像是对新手的建议,但实践表明它们是必需的。 我是Java开发人员,但以下提示可能与语言无关。

请注意,这些步骤通常与异常有关,但是如果没有例外-只是不希望的行为,那么将跳过这些步骤。

  1. 异常堆栈跟踪–这些常常被忽略,甚至被认为是不相关的。 Stacktraces是开始查找问题的地方 。 不仅是异常消息,而且是发生异常的代码行(在您的代码中,在库代码中)。
  2. 有问题的代码–在看到哪行代码导致异常之后,立即转到该行,查看问题是否不会变得明显。 尝试了解代码的行为(即使它是您的代码!)。 如果没有例外,但有异常行为,请确定相关的代码
  3. Google –如果不明显,或者异常/问题发生在您正在使用的框架中而不是代码中,请在Google异常消息或问题描述中进行搜索。 用Google搜索15分钟,修剪异常消息的各个部分-最重要的是您的包和类名。 流行框架中发生的大多数常见异常已被多次解释(因为人们跳过了这一步)
  4. 阅读文档–并不总是适用,但是如果问题/异常与所使用框架的具体组成有关,请阅读有关文档。 俗话说– 5小时调试可节省20分钟阅读文档
  5. 调试器–如果前面的步骤中没有明显的解决方案,请使用IDE的调试器。 在相关位置放置断点并跟踪程序的流程。 这将帮助您了解程序的确切功能(同样,即使它是您的代码)。 您将能够监视变量和字段,并查看它们的值是否不是您期望的值
  6. 反编译器/框架源代码–我一直在IDE上安装反编译器插件。 它将查看您自己的代码的过程扩展到查看所涉及的所有代码。 另外,您可以下载/签出您正在使用的框架的源代码(如果它是开源的)并将其添加到您的IDE中。 如果您查看适当的位置,则使用反编译源或实际源进行调试可以提供有关该问题的更多有用信息。
  7. 最后,如果您尚未解决问题,请提出问题。 在框架/工具的论坛中,在一般的论坛(JavaRanch,Sun论坛等)中,或在专用的问答网站(如StackOverflow)中。 清楚地陈述问题,显示您已经做过什么才能找到/修复问题,并提供适当的信息(设置,框架版本,所讨论的代码,整个stacktrace等)。 同时,尽量不要让问题过于冗长,并强调要点-那些没有报酬来回答的人毕竟会读
  8. 有时,您发现了一个错误。 对于流行且成熟的框架/工具,这种情况很少见(是的!),但是如果您确定它是一个错误,请转到问题跟踪器并提交详细的错误报告。 他们将指导您如何使用变通办法,或者最终将其解决。

我用过“相关”或“适当”之类的词。 每个步骤的受益程度将取决于您的经验,每次您在每个步骤中都会变得更好。

别忘了分享!

参考: Bozho的技术博客博客中的JCG合作伙伴 Bozhidar Bozhanov的 识别和调试问题的提示


翻译自: https://www.javacodegeeks.com/2012/10/tips-for-identifying-and-debugging.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值