我已经找过答案这个问题,我发现了以下建议:返回null或抛出异常一次
- 如果你总是希望找到一个值,则抛出如果缺失则为异常。这个例外意味着有问题。如果该值可能丢失或存在,并且两者都对应用程序逻辑有效,则返回null。
- 只有在发生异常时才会抛出异常。如果预期该对象的行为不存在,则返回null。
但是我应该如何解释他们在我的(这么随便)情况: 我的web应用程序控制器接收请求显示详细信息具有一定的ID的用户。控制器要求服务层获取用户,然后服务返回该对象(如果找到)。如果不是,则发送到“默认”位置的重定向。
如果有人在请求URL中传递了无效的用户标识,该怎么办?我是否应该将其视为“预期的行为”并将null返回给控制器,或者我应该将其称为“问题或意外行为”,从而在服务方法内引发异常并捕获到控制器中?
从技术上来说,毕竟这并不是什么大的差别,但我想按照标准召集的方式来做正确的做法。在此先感谢您的任何建议。
编辑: 我认为,由应用程序生成的URL是有效的和现有的 - 当用户点击时,应该找到具有证书编号的用户。我想知道如何处理这种情况,当用户尝试通过在浏览器的地址栏中手动输入URL来访问具有错误(不存在)用户标识的URL时。