scala - play框架中的错误处理

标签 scala playframework playframework-2.3

我正在使用 Play Framework 开发 REST API。我想为我的所有操作实现集中的错误处理。

实现这一目标的最佳方法是什么?

最佳答案

另一种方法是使用 filter ,例如:

object ExceptionFilter extends EssentialFilter {
  def apply(nextFilter: EssentialAction) = new EssentialAction {
    def apply(requestHeader: RequestHeader) = {
      val next: Iteratee[Array[Byte], Result] = nextFilter(requestHeader)

      // Say your backend throws an ItemNotFound exception.
      next recoverWith {
        case e: ItemNotFound => Iteratee.ignore[Array[Byte]]
          .map(_ => Results.NotFound("Item not in the database!"))
      }
    }
  }
}

然后将其连接到您的全局设置中:
object Global extends WithFilters(CSRFFilter(), ExceptionFilter) with GlobalSettings

如果需要,这可能允许您对请求正文执行某些操作。我同意在大多数情况下使用 GlobalSettings.onError可能是最简单的方法。

关于scala - play框架中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25547795/

相关文章:

scala - 为什么棱镜设置函数不返回选项/也许

Scala:确定用于泛型的方法结果类型

java - 为什么当 String.valueOf() 进行强制转换时 toString 不起作用

java - 在 Scala 中,如何将 Spark 数据集映射到 POJO 列表?

mysql - 具有多个oneToMany关系的ebean fetch

scala - 如何为具有单个可为空成员的案例类编写 Play JSON 写入转换器

java - PlayFramework 内存设置选项不受尊重

mysql - 保持数据与异步 HTTP 请求一致

java - Play Framework : Form data not passed

scala - 将 Pk[Long] 转换为表单中的 Option[Long]