问题标签 [multi-catch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
913 浏览

playframework - 多捕获异常上的 Java 7 错误

我在安装了 JavaSE 1.7.0_60 的 MacOS 10.9.5 (Mavericks) 上运行我的 java 应用程序。

我想使用 multi-catch 语句来捕获一些异常......
但是当我尝试运行我的应用程序时,我收到了这样的错误:

这个错误的原因是这行代码:

如果java -version在我的控制台上输入,我得到了这个结果:

我不明白为什么我会出现这种行为。Java7中允许使用多捕获语句,对吗?


更新 10.15.2014

我知道如果我以这种方式使用 catch 一切都会正常

但我的目标是使用 multi-catch 语句,例如catch (MyExceptionNo1 | MyExceptionNo2 | MyExceptionNo3 e) {...}

看看这个:http ://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html

更新 11.20.2014

发现了问题。即使我告诉它不要使用它,它也是使用 1.6 Java 兼容性的 Play。还不明白为什么,也不明白如何鞋底,但至少我明白问题出在哪里...... :)

0 投票
1 回答
1013 浏览

java - 为什么 Java 中的 multi-catch 特性要求异常是最终的?

关于添加到 Java 7 的多捕获特性的 Oracle 文档指出,catch子句中的异常参数是隐式的final

我的问题是:这种限制有什么意义?因为我似乎找不到它带来的任何关键改进。将引用对象标记为final仅保护引用本身不被修改,而不是它引用的对象,并且永远不会禁止创建另一个引用并以他们想要的任何方式修改它。

关于 SO 的一个有点相关的问题讨论了为什么修改catch子句中的异常引用不是最明智的做法,但它与该子句的任何使用有关catch,而不仅仅是它的多捕获形式。那么,为什么 Java 会为 multi-catch 制造一个例外,并以特殊的方式处理它呢?

0 投票
1 回答
138 浏览

java - Java 7 的组合/多捕获块有正式名称吗?

在这里讨论多捕获/组合捕获块时,术语“多捕获块”之间存在歧义,这意味着 Java 7 功能:

和“多个 catch 块”,字面意思是多个 catch 块:

我研究了 Java 7 特性是否有一个特定的官方名称,可以用来清楚地区分它与捕获多个异常的旧样式。但是,Oracle 资源似乎没有在任何地方命名此功能,而其他一些资源(如EclipseSO)将其称为“multi-catch”块。

这个特性在任何地方都有官方的、Oracle 给定的名称吗?

0 投票
6 回答
5084 浏览

java - 多捕获异常处理程序中的顺序

我知道你可以使用 Java 7,multi-catch但我想知道它的异常顺序是否像以前的 Java 版本一样重要?例如,我输入 Exception 然后SQLExceptionIOException?

还是我应该这样做?

0 投票
0 回答
243 浏览

playframework - 使用 Java 7 多捕获时播放框架异常

我正在使用 Play 2.1.3,出于某种奇怪的原因,我似乎无法使用 Java 7多捕获构造。我可以在 switch 中使用菱形或字符串,所以 Play 肯定使用 Java 7。

这是我在加载使用 multi-catch 的控制器时遇到的异常。任何想法?

controllers.PurchasesController.submitData堆栈跟踪中提到的方法是包含多捕获的方法)。

0 投票
3 回答
476 浏览

java - 确定编译时多捕获异常类型

我构建了一些我不太了解的东西——我不知道它是如何工作的。我已经熟悉了这篇multicatch 解释文章

考虑这两个异常和代码:

getCustomValue()即使方法相同,我也无法调用,因为在 Java 内部,上面try/catch的内容实际上应该是转换MyException1/2to Exception(这就是我理解文档的方式)。

但是,如果我引入这样的接口:

并将其添加到两个异常中,Java 实际上能够允许我使用该方法。然后调用它是有效的:

简而言之,我的问题是:这里实际发生了什么:(MyException1|MyException2 e).

是什么e

  • 是否选择最接近的超类作为 的类型e这个问题询问它,这就是答案。如果是这样,那么当我访问 e 时,为什么接口 CustomValueGetter “可见”?就我而言,它不应该e是一个Exception.

  • 如果不是,如果真正的类是MyException1或者MyException2为什么我不能简单地调用对这两个类可用的相同方法?

  • e一个动态生成的类的实例,它实现了两个异常的所有公共接口并且是最接近的公共超类类型?

0 投票
7 回答
6329 浏览

java - 无法有效地使用 Java 中的 Multi Catch

我真的很想使用 Java-1.7 的特性。此功能之一是“多捕获”。目前我有以下代码

我想从上面的代码中删除两个 catch 块,而是使用如下的单个 catch:

但是上面的代码给出了编译时错误:

“NumberFormatException”已被替代异常捕获。

我理解了上面的编译时错误,但是我的第一个代码块的替换是什么。

0 投票
3 回答
1603 浏览

swift2 - Swift 2 - 尝试多抓

我四处搜索了一下,找不到任何东西——甚至在这个网站上都没有问题——所以现在我想知道 Swift 2 是否像 Java 那样支持多捕获块。

Java-示例:

在 Swift 中,我无法实现类似的解决方案。这个问题解释了一种处理一个ErrorType枚举的不同错误的好方法,但我的要求似乎不同,因为我的错误是用来自 HTTP 响应的消息初始化的。这是我的枚举:

当我想抛出该枚举的错误时,我使用这样的代码:

现在,在调用方法中,我必须分别捕获枚举的每个错误,尽管我希望它们都做同样的事情(除了NOT_FOUND,但这并不重要):

Swift 2 真的不包含 multi-catch 吗?还是有其他解决方案可以帮助我解决我的问题?

编辑:似乎我想要的行为不是很清楚:我想以同样的方式处理 HTTPError 类型的错误(HTTPError.NOT_FOUND 除外),这就是我要求多捕获的原因。

我仍然会实现一个通用的 catch-block 来覆盖所有我不知道的错误(例如超时、nil-access,...),但是那些带有后端消息的错误应该被特殊处理。

谢谢,胖乎乎的

0 投票
2 回答
358 浏览

java - 无法解析 Multi catch 中的异常类

我正在使用 multicatch(Java 7 及更高版本)创建一个自定义异常类。这是我创建的类。请参考以下代码:

上面的类由下面的类扩展。

每次我尝试运行它时,它都会调用相同的构造函数,即带有“异常”的构造函数。为什么会这样?

但是,如果我将 multi-catch 语法替换为以下代码。它按预期工作。

请协助我进行可能的更改,以便使用 multi catch 并使其抛出所需的异常。

0 投票
0 回答
261 浏览

java - 多个 Catch 与 Multi-Catch 的性能差异

我知道在 java 中使用 multi-catch 块有优点和缺点。

但是 multi-catch 语句是否比多个单个 catch 块有任何性能优势?编译器是否以不同的方式对待它们?