调试时的一个反复出现的问题是,我在代码中逐行遍历,然后突然突然跳到catch块。因为我读了这么多行,我真的不记得是哪一行导致catch-block被执行的。
Intellij是否提供了某种工具,让我可以轻松地检查在给定try-block中执行的最后一行是什么?
PS:如果我在处理一个纯函数,事情并不是那么糟糕。我可以删除frame并再次遍历代码,特别注意在进入catch-block之前,哪一行是try-block执行的最后一行。但是,如果方法足够长,那么即使是这样也是乏味的。
谢谢
发布于 2016-11-08 18:45:09
有时我也有这样的要求。您可以尝试以下两个选项:
无需安装插件的普通intellij
当您在catch块中停止时,使用expression evaluation (alt-F8)并执行e (or ex whatever the Exception var named) .printStackTrace(),然后在您的控制台中可以看到堆栈跟踪,它指出了导致异常的行。
这样,你只能从堆栈跟踪中知道行号,但是如果你想去那里检查问题,你必须丢弃帧/重新启动调试。
在intellij中安装chronon插件
这个插件支持前进/后退,也支持方法调用历史功能等。如果发生异常,它也可以定位导致异常的行。然后你可以用alt-f6返回队列,看看发生了什么。
https://stackoverflow.com/questions/40484385
复制相似问题