IntelliJ-对引发异常的代码强制执行try\catch



在eclipse中,框架将try\catch或throws语句强加给任何抛出异常的代码。除非有例外,否则你无法继续。

例如,如果你写:

File propertiesFile = new File(PROPS_FILE_PATH)

Eclipse不会构建项目,除非您用try/catch包围它,或者在方法签名中添加throws FileNotFoundException

IntelliJ并没有强加这一点。

IntelliJ中是否存在任何并行行为?有插件吗?


各位,谢谢大家的建议。我主要关心的是了解是否有一种方法可以实现与Eclipse IDE中相同的"检测和警告异常"行为。


锁定我的问题之后:

如DZone:上所述

创建Exception类时,程序员必须指定必须捕获或可选捕获的异常类型。如果你声明Exception类以扩展Exception,如下所示,编译器会坚持要抛出的方法也应该陷入困境。

当程序员调用一个方法时,编译器会给他们两个选择引发必须捕获的异常:1.在正在调用的代码中添加try/catch以捕获异常2.将异常返回给调用者

因此,您可以看到,eclipse编译器强制程序员以这种或那种方式处理异常。这也是我在Intellij上搜索的内容。


谢谢!

IntelliJ的工作方式与Window处理检查异常的方式相同:它要求您处理(catch/sthrow(它。
File propertiesFile = new File(PROPS_FILE_PATH)不会抛出任何检查异常。看看构造函数javadoc。

尝试使用可能引发已检查异常的语句:

FileInputStream propertiesFile = new FileInputStream(PROPS_FILE_PATH);

我主要关心的是了解是否有实现与Eclipse IDE。

您可以在IDE上的导致编译错误的语句、项目视图(当前类将用红色下划线(和问题视图中找到编译错误
IntelliJ(语句中的alt+Enter(提供的默认意图是在throw子句中添加异常或捕获异常
在Eclipse中,您可以在相同的位置找到编译错误,并且默认的快速修复程序也是相同的
所以您不应该在IntelliJ上迷失方向。至少在这一点上。注意,在其他人身上你可能是。就我个人而言:(

关于"警报",IntelliJ默认的运行方式比Eclipse更严格:它失败得很快
GhostCat的答案很好地解决了这一点。你可能会感兴趣。

Eclipse不会构建项目,除非

首先:捕捉异常是一件好事。"正常"操作模式是:将生成的try/catch放在那里,并带有"TODO:我们应该捕获,还是做其他事情",至少还有一个异常的打印/转储。因此,当您开始测试代码时,您可以看到异常。

除此之外:实际上eclipse是一个IDE,它(默认情况下(即使遇到错误也会继续编译。它甚至允许您在某个没有编译方法B的类中运行方法A!

另一方面,IntelliJ在遇到第一个错误时将停止所有编译活动。实际上,您必须设置您的项目,才能使用"eclipse"编译器样式来获得eclipse"出错后继续编译"!

IntelliJ/Eclipse中任何位置的异常处理:

java.lang.Object
|
+--java.lang.Throwable
|
+--java.lang.Exception
|     |
|     +--java.lang.ClassNotFoundException
|     |
|     +--java.io.IOException
|     |     |
|     |     +--java.io.FileNotFoundException

以下是其他几个已检查的异常:-

*IOException
*ClassNotFoundException
*FileNotFoundException

因此,您需要在运行前检查并处理bt本地try/catch或向父级抛出:

最新更新