Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java内联调试代码_Java_Debugging - Fatal编程技术网

Java内联调试代码

Java内联调试代码,java,debugging,Java,Debugging,我在这里寻找一些最佳实践建议。我有一个库,我想在其中添加一些调试代码(想想System.out.println),只有在配置文件中设置了标志时才会执行该库 这是相当琐碎的,在我进行调试的过程中,它会有帮助调试程序所需的输出。尽管如此,在我的生产代码中会有很多if(DEBUG)语句浮动,这似乎是一个沉重的负担。我不太担心代码的效率,而更担心实际执行某项任务的语句的可读性,而不是那些仅用于调试的语句 我知道,对于大多数IDE,我可以简单地逐步完成代码,从而有效地为自己提供一个更手动的调试选项,但我发

我在这里寻找一些最佳实践建议。我有一个库,我想在其中添加一些调试代码(想想System.out.println),只有在配置文件中设置了标志时才会执行该库

这是相当琐碎的,在我进行调试的过程中,它会有帮助调试程序所需的输出。尽管如此,在我的生产代码中会有很多if(DEBUG)语句浮动,这似乎是一个沉重的负担。我不太担心代码的效率,而更担心实际执行某项任务的语句的可读性,而不是那些仅用于调试的语句

我知道,对于大多数IDE,我可以简单地逐步完成代码,从而有效地为自己提供一个更手动的调试选项,但我发现对于任何充分迭代的代码库,这种方法比将内容转储到控制台更痛苦。我想另一种选择是使用具有调试设置的日志框架,但我仍然觉得额外的日志指令与将它们发送到控制台一样难看

这里有没有我错过的选择?他们的调试框架是用Java实现的吗?作为参考点,我想知道何时调用某些特定方法,以及执行过程中不同点上各种对象的字符串表示


提前感谢。

我不太理解您的问题,但我仍然建议您使用日志框架,如log4j,它允许您选择将日志信息生成到文件、数据库或控制台。使用system.out功能强大。

我不太理解您的问题,但我仍然建议您使用日志框架,例如log4j,它允许您选择将日志信息生成到文件、数据库或控制台。使用system.out功能强大。

您可以使用它不断注销生产代码,使其更易于阅读。使用正确的切入点,您可能也不需要编写几乎同样多的调试代码。如果您花费大量的时间调试,考虑单元测试或更具纪律性的开发方法。另外,当您应该抛出异常时,千万不要捕获异常并记录。

您可以使用它继续从生产代码中注销,使其更易于阅读。使用正确的切入点,您可能也不需要编写几乎同样多的调试代码。如果您花费大量的时间调试,考虑单元测试或更具纪律性的开发方法。另外,不要捕获异常并在应该抛出时记录。在IntelliJ IDEA中,可以添加断点,将消息或计算表达式记录到控制台中。当它到达断点时,它将简单地记录并继续执行

我经常将其与条件断点结合使用,以充当调试语句,更清楚地了解我的代码在调试过程中所做的事情

最酷的是,您不必修改源代码,因为日志语句是在运行时由调试器添加的


我认为Eclipse也允许您这样做。

在IntelliJ IDEA中,您可以添加断点,将消息或计算表达式记录到控制台中。当它到达断点时,它将简单地记录并继续执行

我经常将其与条件断点结合使用,以充当调试语句,更清楚地了解我的代码在调试过程中所做的事情

最酷的是,您不必修改源代码,因为日志语句是在运行时由调试器添加的


我认为Eclipse也可以这样做。

如果代码可读性是一个很大的问题,他可以使用方面日志记录。如果代码可读性是一个很大的问题,他可以使用方面日志记录。