我使用java语言,我有一个方法,如果它被找到,应该返回一个对象。

如果没有找到,我是否应该:

返回null 抛出异常 其他

哪一个是最好的实践或习语?


当前回答

通常它应该返回null。调用该方法的代码应该决定是抛出异常还是尝试其他操作。

其他回答

例外应该是例外。如果返回null是有效的,则返回null。

这取决于方法的性质以及如何使用它。如果正常情况下可能找不到对象,则返回null。如果总是找到对象是正常行为,则抛出异常。

根据经验,只在发生异常时使用异常。不要在编写代码时将异常抛出和捕获作为其正常操作的一部分。

它不包含对象可能发生在正常操作期间,应该由调用者返回NULL来处理。

如果不包含对象表明调用代码或内部状态存在错误,则执行断言。

如果不包含该对象,则表示不经常发生事件。(就像有人从商店中删除了一件商品,而你同时还在结账。)然后抛出异常。

与您正在使用的API保持一致。

在一些函数中,我添加了一个参数:

..., bool verify = true)

True表示抛出,false表示返回错误返回值。这样,任何使用这个函数的人都有两个选项。为了方便那些忘记错误处理的人,默认值应该是true。