Akka-http中的拒绝和异常有什么区别

时间:2019-06-17 11:21:00

标签: akka-http

我在akka-http中没有得到Rejection和Exception之间的区别,因为对它们的管理方式几乎相同,所以它们对我来说显得多余。

不可能具有Exception类型的Rejection,因此在我们的指令中,我们可以捕获Exception并触发适当的Rejection。

1 个答案:

答案 0 :(得分:1)

RejectionException之间的区别是语义。

拒绝使您可以验证请求参数。如果某些参数不匹配(此伪指令不正确),那么then伪指令可以拒绝该请求,而其他某些伪指令可以尝试匹配请求并处理than。

异常意味着您的指令中有意外行为。通常,在指令处理请求匹配之后。

据您所知,您可能遇到以下情况之一:

  • 在匹配指令时有异常,这可能意味着您无法进行正确的验证,唯一的方法是调用函数并查找异常。如果抛出异常,则表示该指令不匹配,您将创建拒绝。

  • 您将拒绝创建为异常处理的一部分。它是处理异常的方法之一。另一个只是返回带有501状态代码和内部服务器错误的响应。

这两种情况都是有道理的,但这并不意味着拒绝和例外是相似的事情。