【发布时间】:2021-09-07 15:04:05
【问题描述】:
在我的 Rocket Web 应用程序中,我有一个从 MySQL 数据库读取数据的服务。在某个时候,NULL 值出现在 VARCHAR 字段中 - 这是我的代码没有预料到的,因此 tx.query_map() 方法开始恐慌。我不喜欢 mysql 在这种情况下出现恐慌的事实。但这只是表明无论我们如何编写我们的代码,都会发生恐慌 - 我们永远无法知道外部库何时会恐慌而不是返回错误值。
所以我的问题是,为什么 Rocket 在发生恐慌时会在响应中返回带有空 JSON 数组 ([]) 的 200 OK 状态代码,而不是返回诸如 500 之类的错误状态代码?我应该在我的设置中做一些明确的事情吗?如果是,那是什么?
【问题讨论】:
-
你能发一个minimal, reproducible example吗?因为默认情况下,Rocket v0.5-rc 完全符合您的要求:如果处理程序发生恐慌,它会返回 500 状态代码。
标签: rust rust-rocket