gpt4 book ai didi

java - 如果未找到对象,则在 getter 方法中返回值

转载 作者:行者123 更新时间:2023-12-01 18:47:08 25 4
gpt4 key购买 nike

我想知道解决这个问题的最佳设计是什么。我有一个Season具有 ArrayList<Episode> 的对象其中包含给定电视节目的一季中的每一集。现在假设我想要搜索给定电视节目的给定季节的第 25 集。以下设计是否合适(抛出异常),还是最好创建一个处于错误状态的对象,返回该对象并让调用方法找出问题所在?

public class Season {
public Episode GetEpisode(int ep_no) throws Exception {
for(Episode ep : episodes)
if(ep.GetEpisodeNumber() == ep_no) return ep;
throw(new Exception("Episode not found."));
}

private ArrayList<Episode> episodes;
}

最佳答案

这要看情况。首先,我不会抛出一个简单的Exception。我会创建一种新的异常类型。也许是一个EpisodeNotFoundException。这样就更具描述性。

其次,当这种情况发生时,代码是否需要处理它,或者它是否不应该失败。如果需要程序员干预,您应该抛出一个扩展 RuntimeException 的异常。抛出 RuntimeException 的代码不需要由调用它的代码处理。

此外,如果未找到剧集,这是一个错误,还是完全可以接受的事情发生?如果可以接受,您可能应该返回 null。这就是 Map.get() 的工作方式。

关于java - 如果未找到对象,则在 getter 方法中返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17281720/

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