问题标签 [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.
java - 什么时候使用multi-catch,什么时候使用rethrow?
我对这两个主题非常不确定。我知道我应该使用 multi-catch 来处理需要以相同方式处理的异常。但出于什么目的,我真的需要这样的东西。
java - 多异常捕获中的未定义方法
我有两个类继承自java.lang.Exception
. 他们都有一个具有相同签名的方法void a(){...}
。它们都可以放在代码块中。如果我做:
然后它不会编译,因为方法a()
不属于异常。这是Java语言缺陷吗?我应该如何正确设计我的代码以防止代码冗余?
java - 多捕获块中异常问题的引用类型
e 是 Exception 类型,但在下面的代码中打印 Exception1:
根据我的研究,“e”应该是 Exception 类型,它是 Exception1 和 Exception2 的通用基类。从第 1 行的消息中可以明显看出。
但是为什么:
? 谢谢。
java - 多捕获中的 WebApplicationException 和 NotFoundException
所以我的问题是:
基本上我有一个带有 try-catch 块的方法,我正在捕获 WebApplicationException (javax.ws.rs.WebApplicationException) 但我的方法正在抛出 NotFoundException (com.sun.jersey.api.NotFoundException) 。
所以我想像这样处理两者:
但是我收到以下编译时错误:
异常 NotFoundException 已被替代 WebApplicationException 捕获
但这是为什么呢?NotFoundException 应该来自一个完全不同的包(球衣),不是吗?
另外 - 如果我将它们放在单独的 catch() 块中,它工作正常。
请帮忙。
java - 如何实现猜谜游戏的自定义异常
我必须创建一个最多允许 5 个回合的猜谜游戏,并且用户输入必须介于 1 和 10 之间。如果不满足这些条件,则可能会引发两个自定义异常(BadGuessException 和 TooManyGuessesException)。我被困在如何进行异常处理上,因为我不确定如何让程序知道是否抛出和捕获这些自定义异常。
我为自定义异常创建了两个类:
在下面的代码中,我试图在抛出 TooManyGuessesException 之前允许最多五圈,并且我试图处理小于 1 和大于 10 的数字输入的异常。我只需要一个 try-catch 块(以及 NumberFormatException 的额外 catch 子句)。
java - 在构造函数中使用多捕获异常类型
假设我需要结合 2 个 api,它们基本上在每个方法上都会抛出异常。代码通常看起来像这样混乱:
所以我想我可以像这样写一个 ExceptionWrapper:
并像这样使用它:
但是 Java 抱怨它无法解析类型。我也无法在构造函数中使用简洁的多捕获语法:
所以我需要写这样的东西:
从我的角度来看,这非常丑陋。这个问题有更好(意味着更优雅)的解决方案吗?我通常不感兴趣,哪个 Api 失败,只有其中一个失败,以及它抛出了哪个 errorCode(在两种情况下都具有相同的含义)
我有点想到鸭子打字功能:任何带有 a 的异常getCode
就足够了。
编辑:
许多人建议最简单的方法是实现一个通用类型。但我无法以任何方式或形式修改 Api1 或 Api2。此外,getCode
它不返回一个 int,而是一个包含一个 int 的枚举。枚举类型(当然)不一样,但它们的int
表示是一样的。
java - 子和父的Java多捕获异常
如果我尝试同时捕获异常并说出这样的 InterruptedException 会发生什么:
在这种情况下,InterruptedException 扩展了 Exception。如果抛出 InterruptedException 会发生什么?它会进入那个 catch-clause 和所有其他 Exceptions 的第一个子句吗?
期望的结果是以一种特殊的方式处理一个异常,并以一种方式处理所有其余的异常。
谢谢和最好的问候。
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 块处于活动状态?