gpt4 book ai didi

java - 如果对象不是 Java 中某物的实例,是否会抛出标准异常?

转载 作者:搜寻专家 更新时间:2023-11-01 01:51:51 25 4
gpt4 key购买 nike

假设我有以下内容:

public interface Foo {
...
}

public class Gin {
...
}

public class Fizz {
...
}

public class Buzz {
public Foo getAFoo() {
...
}

public void test() {
Foo myfoo = getAFoo();
if (myFoo instanceof Bar) {
Bar myBar = (Bar) myFoo;
//do something more
} else {
//throw new something exception
}
}
}

这样的编程合理吗?是否存在 test() 可以抛出的内置异常,或者我应该为此创建自己的异常类?

最佳答案

虽然有些基于意见,但当对象不是预期类型时通常抛出的异常是 ClassCastException ,这种方法在 JDK 中使用得相当广泛。不过,您可以使用比 JDK 更好的版本并提供一条消息:

throw new ClassCastException("Object was not of type Bar");

如果对象作为参数传递,您可以使用IllegalArgumentException ,还有一条消息:

throw new IllegalArgumentException("myParameter was not of type Bar");

关于java - 如果对象不是 Java 中某物的实例,是否会抛出标准异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26531548/

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