gpt4 book ai didi

java - 如果java中的列表为空,抛出哪个异常?

转载 作者:IT老高 更新时间:2023-10-28 20:26:56 24 4
gpt4 key购买 nike

如果列表为空,我对抛出哪个异常有以下疑问

public class XYZ implements Runnable {
private List<File> contractFileList;

@Override
public void run() {
contractFileList = some method that will return the list;
//now i want to check if returned contractFile is empty or not , if yes then raise the exception
if (contractFileList.isEmpty()) {
// throw new ?????
}
}
}

我正在批处理中运行此代码,我想抛出一些异常来停止批处理执行。

最佳答案

看起来像 IllegalStateException对我来说。

Signals that a method has been invoked at an illegal or inappropriate time.

基本上,您的对象不处于有效状态,无法调用 run

我不会为此创建您自己的异常(exception),除非您希望它在其他地方被故意捕获。 听起来这只会由于编程错误而不是意外情况而发生......在这种情况下,未经检查的异常是合适的,并且 IllegalStateException 非常清楚地描述了问题的一般性质。

您可以在异常消息中详细说明原因(解释“非法状态”是列表为空)。

我建议您尽量避免为每一个可能出错的小事创建单独的异常类型 - 除非您分别捕获这些异常,否则使用不同的类型无济于事;它只会增加困惑。具有正确广泛类型但具有有用信息的异常提供了同样多的好处,而没有太多的认知开销。

请注意,如果您要实现 Runnable.run,则不能使用已检查的异常,因为它没有声明为抛出任何已检查的异常。您必须将其包装在未经检查的异常中(例如 RuntimeException),此时好处更少。

关于java - 如果java中的列表为空,抛出哪个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11201420/

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