从控制器中抛出异常是一个好习惯吗?
例如,如果Request没有某个属性,我们可能会从某个控制器的方法抛出 IllegalStateException 。
例如,如果Request的参数不在适当的格式/范围内,我们可能会从某个控制器的方法抛出 IllegalArgumentException 。
答案 0 :(得分:0)
不,我不这么认为。谁来处理它?客户端。处理它意味着什么?例外不会告诉他们该怎么做。最好更改UI以指示他们接下来做什么。您可以在所使用的每个体面的Web UI中看到这一点:文本框突出显示,并告诉您适当的范围是什么。看到堆栈跟踪会有什么样的体验?
因此控制器应该捕获所有异常并相应地更改显示。
答案 1 :(得分:0)
我认为将此类异常抛给最终用户并不是一个好主意。相反,您可以提醒最终用户一个有意义的错误消息,使用该消息可以很容易地理解错误。