Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
eclipse beakpoint:在离开Java方法之前停止_Java_Eclipse_Debugging_Breakpoints_Eclipse 3.4 - Fatal编程技术网

eclipse beakpoint:在离开Java方法之前停止

eclipse beakpoint:在离开Java方法之前停止,java,eclipse,debugging,breakpoints,eclipse-3.4,Java,Eclipse,Debugging,Breakpoints,Eclipse 3.4,有没有一种方法可以告诉调试器在返回之前停止,不管是返回语句、异常语句还是从底部掉出来的语句?Java编辑器向我展示了我的方法可以退出的所有位置,这让我深受启发——当您单击方法声明的返回类型时,它会高亮显示这些位置(标记已启用) [Eclipse3.4]好问题。在我脑海中,我会这样做: public void method(Object stuff) { try { /* normal code */ } finally { int x = 0;

有没有一种方法可以告诉调试器在返回之前停止,不管是返回语句、异常语句还是从底部掉出来的语句?Java编辑器向我展示了我的方法可以退出的所有位置,这让我深受启发——当您单击方法声明的返回类型时,它会高亮显示这些位置(标记已启用)


[Eclipse3.4]

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

public void method(Object stuff) {
    try {
        /* normal code */
    } finally {
        int x = 0;
    }
}
您可以在x=0行上设置断点,无论返回到哪里,它都将始终执行。即使抛出异常,它也会运行

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

只需放置5个断点(每个return语句一个断点,不管怎样)可能效果最好


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

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

public void myMethod() {

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

您可以设置方法断点

双击方法声明旁边的空白处。此时会出现带有箭头装饰的断点。右键单击以检查属性,您可以为“方法输入”和/或“方法退出”设置“挂起打开”


您可以在中阅读更多关于它们的信息。

我喜欢这个答案。尽管is需要更改代码,但它是独立于调试器的!这似乎只有在
myMethod()
正常退出时才起作用。当抛出的异常退出
myMethod()
时,不会触发方法退出断点。