在eclipse中,框架对任何抛出异常的代码强制执行try \ catch或throws语句 . 如果没有例外,你就无法继续 .
例如,如果你写:
File propertiesFile = new File(PROPS_FILE_PATH)
除非用 try/catch 包围它或将 throws FileNotFoundException 添加到方法签名,否则Eclipse不会构建项目 .
IntelliJ没有强加于此 .
IntelliJ中是否存在任何并行行为?任何插件?
伙计们,谢谢大家的建议 . 我主要关注的是要了解是否有一种方法可以实现“检测和警告异常”的相同行为,就像在Eclipse IDE中一样 .
锁定我的问题之后:
如DZone所述:
在创建Exception类时,程序员必须指定一种必须捕获或可选地捕获的异常 . 如果声明Exception类以扩展Exception,如下所示,编译器将坚持要抛出的方法也应该在catch块中 . 编译器在调用抛出必须捕获的异常的方法时为程序员提供两种选择:1 . 在正在调用的代码中添加try / catch以捕获异常2.将异常重新传递给调用者
所以,你可以看到,eclipse编译器强制程序员以这种方式或另一种方式处理异常 . 这也是我在Intellij上搜索的内容 .
谢谢!
3 回答
除非......否则Eclipse不会构建项目
首先:捕获异常是一件好事 . “正常”操作模式是:将生成的try / catch放在那里,使用“TODO:我们应该捕获,还是执行其他操作”,以及至少打印/转储异常 . 因此,当您开始测试代码时,您会看到异常 .
除此之外:实际上eclipse是IDE(默认情况下)即使遇到错误也会继续编译 . 它甚至允许你在方法B不编译的某个类中运行方法A!
另一方面,IntelliJ将在遇到第一个错误时_4736_全部编译活动 . 您实际上必须设置您的项目以使用"eclipse"编译器样式来进行eclipse "continue compile after errors"!
对于已检查的异常,IntelliJ的工作方式与Window相同:它需要您处理(捕获/抛出)它 .
但
File propertiesFile = new File(PROPS_FILE_PATH)
不会抛出任何已检查的异常 . 看看constructor javadoc .尝试使用可能抛出已检查异常的语句:
您可以在导致它的语句,项目视图(当前类将以红色加下划线)和问题视图中的IDE上找到编译错误 .
IntelliJ提供的默认意图(在语句中输入alt)将在throw子句中添加异常或捕获异常 .
在Eclipse中,您在相同位置找到编译错误,默认快速修复是相同的 .
所以你不应该在IntelliJ上迷失方向 . 至少在这一点上 . 请注意,其他人可能是 . 我个人:)
关于"alerting",IntelliJ默认的运行方式比Eclipse更严格:它快速失败 .
GhostCat的答案很好地解决了这一点 . 你可能会感兴趣 .
在IntelliJ / Eclipse的任何地方进行异常处理:
以下是其他一些Checked Exceptions: -
所以你需要在运行之前检查并处理bt try / catch本地或抛出到父级: