问题标签 [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 投票
0 回答
49 浏览

java - Multi-Catch 抛出编译错误。单独来说,它工作正常

我正在使用 JDK 1.8,并且在使用 multicatch 时遇到如下编译问题。

此行中的多个市场:令牌“|”中的语法错误,。预期的 FileNotFoundException.IOException 无法解析为类型。

我检查了一些相关线程的 multicatch,但找不到我遇到此问题的原因。

PFA 屏幕抓取以显示配置的 JDK 版本和引发异常的多捕获。

在此处输入图像描述

@Tunaki - 使用单独的 catch 语句可以正常工作。我不认为这是因为 finally 块在 catch 块之前 - PFB 屏幕抓取:

在此处输入图像描述

0 投票
3 回答
627 浏览

java - 什么时候使用multi-catch,什么时候使用rethrow?

我对这两个主题非常不确定。我知道我应该使用 multi-catch 来处理需要以相同方式处理的异常。但出于什么目的,我真的需要这样的东西。

0 投票
2 回答
250 浏览

java - 多异常捕获中的未定义方法

我有两个类继承自java.lang.Exception. 他们都有一个具有相同签名的方法void a(){...}。它们都可以放在代码块中。如果我做:

然后它不会编译,因为方法a()不属于异常。这是Java语言缺陷吗?我应该如何正确设计我的代码以防止代码冗余?

0 投票
3 回答
498 浏览

java - 多捕获块中异常问题的引用类型

e 是 Exception 类型,但在下面的代码中打印 Exception1:

根据我的研究,“e”应该是 Exception 类型,它是 Exception1 和 Exception2 的通用基类。从第 1 行的消息中可以明显看出。

但是为什么:

? 谢谢。

0 投票
2 回答
550 浏览

java - 多捕获中的 WebApplicationException 和 NotFoundException

所以我的问题是:

基本上我有一个带有 try-catch 块的方法,我正在捕获 WebApplicationException (javax.ws.rs.WebApplicationException) 但我的方法正在抛出 NotFoundException (com.sun.jersey.api.NotFoundException) 。

所以我想像这样处理两者:

但是我收到以下编译时错误:

异常 NotFoundException 已被替代 WebApplicationException 捕获

但这是为什么呢?NotFoundException 应该来自一个完全不同的包(球衣),不是吗?

另外 - 如果我将它们放在单独的 catch() 块中,它工作正常。

请帮忙。

0 投票
2 回答
344 浏览

java - 如何实现猜谜游戏的自定义异常

我必须创建一个最多允许 5 个回合的猜谜游戏,并且用户输入必须介于 1 和 10 之间。如果不满足这些条件,则可能会引发两个自定义异常(BadGuessException 和 TooManyGuessesException)。我被困在如何进行异常处理上,因为我不确定如何让程序知道是否抛出和捕获这些自定义异常。

我为自定义异常创建了两个类:

在下面的代码中,我试图在抛出 TooManyGuessesException 之前允许最多五圈,并且我试图处理小于 1 和大于 10 的数字输入的异常。我只需要一个 try-catch 块(以及 NumberFormatException 的额外 catch 子句)。

0 投票
2 回答
119 浏览

java - 在构造函数中使用多捕获异常类型

假设我需要结合 2 个 api,它们基本上在每个方法上都会抛出异常。代码通常看起来像这样混乱:

所以我想我可以像这样写一个 ExceptionWrapper:

并像这样使用它:

但是 Java 抱怨它无法解析类型。我也无法在构造函数中使用简洁的多捕获语法:

所以我需要写这样的东西:

从我的角度来看,这非常丑陋。这个问题有更好(意味着更优雅)的解决方案吗?我通常不感兴趣,哪个 Api 失败,只有其中一个失败,以及它抛出了哪个 errorCode(在两种情况下都具有相同的含义)

我有点想到鸭子打字功能:任何带有 a 的异常getCode就足够了。

编辑: 许多人建议最简单的方法是实现一个通用类型。但我无法以任何方式或形式修改 Api1 或 Api2。此外,getCode它不返回一个 int,而是一个包含一个 int 的枚举。枚举类型(当然)不一样,但它们的int表示是一样的。

0 投票
2 回答
133 浏览

java - 子和父的Java多捕获异常

如果我尝试同时捕获异常并说出这样的 InterruptedException 会发生什么:

在这种情况下,InterruptedException 扩展了 Exception。如果抛出 InterruptedException 会发生什么?它会进入那个 catch-clause 和所有其他 Exceptions 的第一个子句吗?

期望的结果是以一种特殊的方式处理一个异常,并以一种方式处理所有其余的异常。

谢谢和最好的问候。

0 投票
1 回答
32 浏览

java - 使用显式 throw 关键字后,为什么在多个 catch 语句的情况下另一个隐式 throw 不起作用?

在这个程序中 MyclassEx 是 Exception(java.lang.Exception) 的子类。我们创建用户定义异常。在该类中包含一个参数化构造函数,该构造函数将其参数传递给超类,即 Exception 类。在这个类之外,我声明了另一个类 SimpleThrow .这里我输入两个变量x,y的double类型。Z是x,y的除数。如果我把y设为零,它应该把控制权交给catch(ArithmeticException e)block。但它不会抛出任何除了用户定义的异常即 MyclassEx 之外的 catch 块。如何使用 Myclass 异常使所有 catch 块处于活动状态?