gpt4 book ai didi

java - 如何判断是哪一个抛出了同类型的异常?

转载 作者:行者123 更新时间:2023-12-02 12:02:52 25 4
gpt4 key购买 nike

假设我们有一个构造函数/方法,它会在不同情况下抛出 IllegalArgumentException:

class MyClass {

MyClass(char char1, char char2) {
if(condition1 on char1 and char2) {
throw new IllegalArgumentException("condition1 failed");
}
if(different condition2 on char1 and char2) {
throw new IllegalArgumentException("condition2 failed");
}
...
}

}

如果我想构造一个带有无效参数的 MyClass 实例,我如何判断抛出了哪个异常?

try {
MyClass clazz = new MyClass('a', 'a');
} catch (IllegalArgumentException e) {
// which one?
}

一个丑陋的解决方案是检查详细消息,或者在 IllegalArgumentException 的情况下,检查提供的原因,或使用不同类型的异常(这在例如解析方法中似乎不合适) )。这个问题有通用的解决方案吗?

最佳答案

您可以为这两种情况编写自己的特定异常,从而扩展非法参数异常

编辑:正如亚历克斯·谢斯特罗夫已经说过的

关于java - 如何判断是哪一个抛出了同类型的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47123429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com