教程:调试您的第一个 Java 应用程序

admin2025-11-01 23:28:12世界杯比赛赛

教程:调试您的第一个 Java 应用程序您已 创建并运行了您的 Java 应用程序。 让我们假设您发现它的功能并非如您所期望的那样。 例如,它返回错误的值或因异常而崩溃。 看起来您的代码中有错误,现在是调试它的时候了。

什么是调试?广泛而言,调试是检测和纠正程序中错误的过程。

您将要处理不同类型的错误。 有些错误很容易捕捉,比如语法错误,因为它们由编译器处理。 另一个简单的情况是,当通过查看堆栈跟踪可以快速识别错误时,这有助于您找出原因。

然而,有些错误非常棘手,并且需要很长时间才能找到和修复。 例如,一个微妙的逻辑错误,可能在程序早期发生,但直到很晚才表现出来,这使得解决问题变得非常具有挑战性。

这时, 调试器就派上用场了。 它是一种工具,通过提供对程序内部操作的洞察,帮助您高效地发现错误。 这通过在指定点暂停执行、分析程序状态,并在必要时逐步执行来实现。 在调试过程中,您可以完全掌控一切。 在本手册中,我们将介绍一个基本的调试场景,以帮助您入门。

检查代码让我们试试一个简单的调试案例。 假设我们有以下应用程序:

public class AverageFinder {

public static void main(String[] args) {

System.out.println("Average finder v0.1");

double avg = findAverage(args);

System.out.println("The average is " + avg);

}

private static double findAverage(String[] input) {

double result = 0;

for (String s : input) {

result += Integer.parseInt(s);

}

return result;

}

}

该程序应计算作为命令行参数传递的所有值的平均值。

编译和运行都没有问题;但是,结果与预期不符。 例如,当我们传递 1 2 3 作为输入时,结果是 6.0。

首先,您需要思考错误可能来自哪里。 我们可以假设问题不在 print 语句中。 很可能,意外结果来自我们的 findAverage 方法。 为了找到原因,让我们在运行时检查其行为。

设置断点为了调查这个错误,我们需要在程序到达产生错误结果的代码片段时暂停程序。 这是通过设置断点来完成的。 断点 表示程序将在此行代码暂停,方便您检查其状态。

点击 findAverage 方法被调用的那行的行号栏。

以调试模式运行程序现在让我们以调试模式启动程序。

由于在运行和调试程序时需要传递参数,请确保 运行/调试配置中包含这些参数。

请点击装订区域的 运行 图标,然后选择 修改运行配置。

在 程序实参 字段中输入 1 2 3。

点击 运行 按钮附近的 main 方法。 请从菜单中选择 调试。

分析程序状态调试器会话启动后,程序会正常运行,直到遇到断点。 此时,IntelliJ IDEA暂停程序,高亮显示程序暂停的那一行,并显示 调试 工具窗口。

突出显示的行尚未执行。 该程序现在等待您的进一步指示。 暂停状态允许您检查变量,这些变量保存程序的状态。

由于 findAverage 方法尚未被调用,其所有局部变量(如 result )尚未进入作用域,但我们可以检查 args 数组的内容(args 在 main 方法的作用域内)。 变量的内容会内联显示在使用 args 的地方:

您还可以在 线程与变量 选项卡上的 调试 工具窗口中获取关于当前范围内所有变量的信息。

逐步执行程序现在我们对 调试 工具窗口很熟悉了,是时候 单步调试findAverage 方法,并查看其内部发生了什么。

要逐步进入方法,请点击 调试 工具窗口工具栏上的 步入 按钮或按下 F7。

编辑器中的高亮会移动到另一行,因为我们将执行点向前推进了一步。

让我们继续单步执行,看看局部变量 result 是如何声明的,以及在循环的每次迭代中是如何变化的。

此时,变量 s 包含值 "3"。 它将被转换为 Integer ,并添加到 result 中,当前其值为 3.0。 目前没有错误。 总和计算正确。

再走两步,我们就到达 return 语句,并且我们看到遗漏的地方。 我们返回 result ,其值为 6.0 ,不将其除以输入的数量。 这是造成程序输出不正确的原因。

当您完成单步调试并希望正常继续程序执行时,请按 F9 或从主菜单中选择 运行|调试操作|恢复。

让我们纠正错误:

return result / input.length;

停止调试会话并重新运行程序为了检查程序是否正常工作,让我们停止调试会话并重新运行程序。

在 调试 工具窗口的工具栏中,点击 停止 按钮或按下 Ctrl+F2。

点击 运行 按钮附近的 main 方法。 请从菜单中选择 运行。

请验证程序现在是否正常运行。

最后修改日期: 2025年 9月 22日调试 GraalVM 本机镜像教程:设置值

友情链接