在服务层中,当解析JSON字符串时,如果解析失败,则会向控制器抛出router.put('/edit', checkAuth, function (req, res, next) {
if (req.userData.role === 'superadmin') {
const { id, ...newUserData } = req.body;
User.findOneAndUpdate({ _id: id }, {$set: newUserData}, ...);
} else { /* ... */ }
});
。
JsonReaderException
在Web层中的控制器中,捕获到该异常后,我想将该JSON字符串与异常消息一起存储在数据库中。
JObject jData = new JObject();
try
{
jData = JObject.Parse(response.Content);
}
catch (JsonReaderException ex)
{
throw ex;
}
我可以在服务层中执行此操作(这就是我最初的操作方式),但是由于依赖项注入,我将不得不向catch(JsonReaderException ex)
{
_exceptionLogService.LogException(new ExceptionLog()
{
Date = DateTime.Now,
Message = ex.Message,
Content = "json string (response.Content) goes here"
}
}
添加一个依赖项,然后在其中进行很多更改的地方。如果可能的话,我正在寻找一种更简单,更快捷的方法来在Web层中执行此操作。我将如何去做?
答案 0 :(得分:0)
您的控制器未在您的代码中讨论,所以我不知道。如果 您的第二部分代码,对自己的部分进行新的例外 采用json字符串的参数,因此您可以将其传递给– BugFinder 2小时前
我通过创建一个自定义JsonParseException
(将JsonReaderException
和一个字符串作为参数)并将其扔给控制器来解决了这个问题。不幸的是,我无法将评论标记为答案。
JObject jData = new JObject();
try
{
jData = JObject.Parse(response.Content);
}
catch (JsonReaderException ex)
{
throw new JsonParseException(ex, response.Content);;
}