Java Eclipse:在块中查找可以引发异常的行

Java Eclipse:在块中查找可以引发异常的行,java,eclipse,jsp,exception,Java,Eclipse,Jsp,Exception,我看到的代码看起来像 try { // Lots of things here. // More than I'd like to individually hover over every time I see this } catch (Exception e) { // doesn't matter } 对于try块中的任何特定方法,我都可以找到它抛出的检查异常。有没有办法突出显示可能引发某些选中异常的所有行 一般来说,我想我可能会删除catch块,将方法

我看到的代码看起来像

try {
     // Lots of things here.
     // More than I'd like to individually hover over every time I see this
} 
catch (Exception e) {
     // doesn't matter
}
对于try块中的任何特定方法,我都可以找到它抛出的检查异常。有没有办法突出显示可能引发某些选中异常的所有行

一般来说,我想我可能会删除catch块,将方法签名更改为抛出异常,在这一点上,我可以看到方法中所有抛出异常的行,而不必担心:查看更新

在本例中,这甚至不能很好地工作,因为代码在JSP中

注意:如果有关系,我使用的是MyEclipse标准


更新:标记引用处于启用状态,但在这种情况下不执行任何操作。我问这个问题是因为我认为上下文中的某些东西导致了这种预期的行为,但它看起来像是一个奇怪的边缘案例或bug

您可以阅读该类的参考手册,了解特定方法可能引发的异常。请记住,java有两种异常:选中和未选中。对于未检查的异常,该方法不必声明它可以抛出异常,例如RuntimeException


我还建议您使用一些IDE,例如Eclipse,它会立即告诉您一行是否可以抛出异常,而您没有处理它-然后您可以使用try-catch将其包装,或者让该方法只需单击鼠标即可抛出异常。

在Eclipse中,如果启用突出显示事件并选择异常,它会突出显示抛出被catch块捕获的检查异常的所有行。

将光标放置在Word异常的中间,或者在catch子句中捕获的任何异常类型。单词Exception和引发此类异常的所有方法调用将自动标记为灰色背景突出显示。此功能在Eclipse中称为标记引用


如果您在Eclipse安装中没有看到这种情况,请点击AltShiftO-like-occurrences一次以切换该功能并重复上述工作流程。或者使用toobar按钮作为第二个条目。

如果删除try/catch块,Eclipse将突出显示所有选中的异常,作为捕获它们所需的错误,它将不会编译。据我所知,该功能取决于编译错误,但我必须深入源代码才能找到答案。假设它不是基于编译错误,您可以将其挂接到编辑器中。对于一个特性来说,这是一个好主意,但是我处理它的方式是简单地检查方法并检查文档悬停,或者我认为是F1。通常有例外的方法是相当明显的。作为旁注,如果有这么多代码在那里,你后悔想悬停,看看抛出异常,你可能要考虑重构和提取一些东西,以进一步的功能。但这并不能真正解决这个问题。我倾向于同意,但我对这个项目还不够熟悉,无法有效地重构它。而且,知道在哪里抛出了哪些异常将有助于理解和/或重构代码,因此存在鸡和蛋的问题。在我看来,你永远不应该直接捕获异常。因为Java7允许您使用Multicatch,所以您可以以相同的方式处理所有已检查的异常。除此之外,您还捕获了RuntimeException,我从未捕获过RuntimeException。RuntimeException表明,您不能继续执行您的运行例程。如果在抛出RuntimeException时可以继续,那么也不应该抛出RuntimeException。这可以防止丢失您应该处理的抛出异常,并可能导致严重的错误。为什么检查事件的技巧不适合您?你填补了一个漏洞吗?可能没有抛出异常?看起来你真的没有读我的问题。我使用的是eclipse,我不想单独悬停在每个方法上,因为我看到的是一个很长的块。我错过了你说的吗?真的很好的功能,虽然使用Eclipse已经很长时间了,但我不知道。非常感谢。