为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森栏 2022-03-10 16:50:51
在 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 in catch 块中。当程序员调用抛出必须捕获的异常的方法时,编译器为程序员提供了两种选择: 1. 在被调用的代码中添加 try/catch 以捕获异常 2. 将异常传递回调用者因此,您可以看到,eclipse 编译器强制程序员以这种或其他方式处理异常。这也是我在 Intellij 上搜索的内容。
查看完整描述

3 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

IntelliJ 的工作方式与检查异常的 Window 相同:它要求您处理(捕获/抛出)它。
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 的答案很好地解决了这一点。你可能会感兴趣。


查看完整回答
反对 回复 2022-03-10
?
千万里不及你

TA贡献1784条经验 获得超9个赞

Eclipse 不会构建项目,除非...

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

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

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


查看完整回答
反对 回复 2022-03-10
?
长风秋雁

TA贡献1757条经验 获得超7个赞

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 或在运行前向父级抛出:


查看完整回答
反对 回复 2022-03-10
  • 3 回答
  • 0 关注
  • 205 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信