IntelliJ-对代码抛出异常施加try \ catch

时间:2018-12-10 11:26:15

标签: java intellij-idea

在eclipse中,框架对任何引发异常的代码施加try \ catch或throws语句。您不能继续做任何事情,除了例外。

例如,如果您要写:

File propertiesFile = new File(PROPS_FILE_PATH)

除非您用 try / catch 包围它,或者将 throw FileNotFoundException 添加到方法签名中,否则Eclipse不会构建该项目。

IntelliJ不强加于此。

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


伙计们,谢谢大家的建议。 我主要关心的是了解是否有一种方法可以像Eclipse IDE中一样实现“检测和警告异常”的相同行为。


在锁定我的问题之后:

DZone所述:

  

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

     

编译器在调用方法时为程序员提供了两种选择   引发必须捕获的异常:   1.在正在调用的代码中添加try / catch以捕获异常   2.将异常传回给调用者

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


谢谢!

3 个答案:

答案 0 :(得分:2)

IntelliJ与用于检查异常的Window的工作方式相同:它要求您处理(捕捉/抛出)它。
但是File propertiesFile = new File(PROPS_FILE_PATH)不会引发任何检查的异常。查看constructor javadoc

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

FileInputStream propertiesFile = new FileInputStream(PROPS_FILE_PATH);
  

我主要关心的是了解是否有办法实现   与“检测和警告异常”相同的行为   Eclipse IDE。

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

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

答案 1 :(得分:1)

除非...

,否则Eclipse不会构建项目。

首先:捕获异常是一件好事。 “正常”操作模式是:将生成的try / catch放入其中,并带有“ TODO:我们应该捕获还是做其他事情”,以及至少打印/转储异常。这样,当您开始测试代码时,就可以看到异常。

除此之外:实际上,eclipse是IDE(默认情况下),即使遇到错误也可以继续编译内容。它甚至允许您在某些方法未编译的类中运行方法A!

另一方面,

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

答案 2 :(得分:0)

在IntelliJ / Eclipse的任何地方进行异常处理:

ColumnMappings

以下是其他一些检查异常:-

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

因此您需要在运行前检查和处理bt try / catch或将其扔给父级: