由于结果相同,为什么要使用一种可能性而不是另一种?
也许因为作为(Java)程序员,您习惯于在应用程序的特定规则被破坏时引发异常?将一些字符串转换为数字,您可能会得到一个
NumberFormatException,在数组中使用错误的索引,然后得到一个
ArrayIndexOutOfBoundsException,访问某些您不允许访问的内容并获得一个
SecurityExceptionetc。您习惯于在“常规响应”可以时抛出异常。无法创建(由于错误的输入或某些处理错误)。
当您无法返回常规响应时,必须向客户端返回错误响应。您可以通过抛出异常或手动构建响应来实现。对于您的客户端来说,这是一回事,但对于服务器端代码而言,则是一回事。
引发异常可使您的代码更整洁,更易于推理,从而更易于理解
。这个想法是将其子类化,
WebApplicationException并从中创建自己有意义的异常(例如
ProductNotFoundExceptionextends WebApplicationException { ... },AccessDeniedException extendsWebApplicationException { ...}或者使用异常映射器重用异常)。这样,它对于throw new ProductNotFoundException()
或throw newAccessDeniedException()
让框架更干净,而不是Response
每次都构建它,然后再遵循构建它的细节来弄清楚该代码部分中正在发生的事情。



