19

有没有办法告诉调试器在返回之前停止,无论哪个语句从方法中退出,无论是返回、异常还是跌出底部?Java 编辑器向我显示了我的方法可以退出的所有位置,这使我受到启发——当您单击方法声明的返回类型时,它会突出显示它们(启用标记出现次数)。

[日食 3.4]

4

3 回答 3

35

在方法签名的行上放置一个断点。那是你写的地方

public void myMethod() {

然后右键单击断点并选择“断点属性”。在弹出窗口的底部有两个复选框:“方法入口”、“方法出口”。检查后者。

于 2008-10-13T16:41:24.827 回答
3

您可以设置方法断点。

双击方法声明旁边的空白处。出现带有箭头装饰的断点。右键单击以检查属性,您可以为“方法入口”和/或“方法出口”设置“暂停:”。

您可以在Eclipse Cookbook中了解更多关于它们的信息。

于 2008-10-13T17:12:08.057 回答
0

好问题。在我的脑海中,我会这样做:

public void method(Object stuff) {
    try {
        /* normal code */
    } finally {
        int x = 0;
    }
}

您可以在 x = 0 行上设置断点,无论您返回何处,它都将始终执行。即使抛出异常,它也会运行。

问题在于范围。除非您在 try 块之外定义变量,否则您将无法在到达 finally 块的位置看到它们的值,因为它们将退出范围。

只需放置 5 个断点(每个 return 语句一个,无论如何)可能效果最好。

我希望有更好的方法,我很想知道。

于 2008-10-13T15:54:41.253 回答