我对编程比较陌生,特别是Java ...所以我需要花很长时间才能找到小障碍 - 例如今天我花了5个小时才发现我写了“servlet-name”作为“sevlet” -name“在DD中,后来再多花2个小时,因为我不知道ServletExtractListener子类应该是公共的 - Tomcat不想启动。
调试程序总是需要这么长时间,还是只是我缺乏计算机科学方面的人才?除了大脑之外,你用哪些工具快速找到那些小障碍? =)
答案 0 :(得分:2)
格式错误的web.xml
应该在服务器日志中引发错误 - 日志是你最好的朋友之一,所以最好早点熟悉它们。
能够破译堆栈跟踪是一项关键技能;很多时候,开发者看起来不够遥远(跟随“链条引起的”)并错过重要的线索。
其他任何访问的类应该基本上都是公共的。
很多关于经验,耐心,对细节的批判性眼光,更多的耐心,更多的经验和更多的耐心。
这是一个过程。
有 工具可以提供帮助,例如FindBugs,PMD,CheckStyle等,但他们不会发现逻辑错误(通常)或Java代码之外的任何东西(比如XML配置文件)。但是大多数配置文件错误都会被框架或容器捕获,因为它们通常遵循XSD或DTD。
答案 1 :(得分:1)
Eclipse调试器是我在调试程序时花费99%的时间的地方。只需确保您知道每个步骤发生了什么,并遵循变量。它伴随着我会说的练习。
答案 2 :(得分:1)
当您花费更多时间编程时,您将更好地掌握从编译器和支持环境中获得的错误消息意味着。编写好的错误消息非常困难(特别是因为错误不可避免地是因为输入在某种程度上是错误的或错误的 - 试图弄清楚它可能出错的方式也很困难) - 因此,您只需要通过不同的警告和错误就可以获得足够的练习来了解要查找的内容。
哦,是的,做确保您使用编译器可以提供的全部警告。令人毛骨悚然的是编译器有时可以完成水晶球的工作。