如何在 JsonReaderException 之后存储 json 字符串?

在服务层,当解析一个 JSON 字符串时,如果解析失败则JsonReaderException抛出一个给控制器。


JObject jData = new JObject();


try

{

    jData = JObject.Parse(response.Content);

}

catch (JsonReaderException ex)

{

    throw ex;

}

在 Web 层的控制器中,捕获到该异常后,我想将该 JSON 字符串与异常消息一起存储在数据库中。


catch(JsonReaderException ex)

{

    _exceptionLogService.LogException(new ExceptionLog()

    {

        Date = DateTime.Now,

        Message = ex.Message,

        Content = "json string (response.Content) goes here"    

   }

}

我可以在服务层执行此操作(我最初就是这样做的),但是,由于依赖注入,我将不得不添加一个依赖项_exceptionLogService,然后在很多地方更改代码。如果可能的话,我正在寻找一种更简单、更快捷的方法来在 web 层中执行此操作。我该怎么做呢?


慕后森
浏览 97回答 1
1回答

守候你守候我

您的代码中没有提到您的控制器,所以我不知道。如果你的代码的第二部分,创建一个你自己的新异常,它接受一个 json 字符串的参数,这样你就可以传递它 – BugFinder 2 小时前我通过创建一个JsonParseException将 aJsonReaderException和一个字符串作为参数的自定义并将其交给控制器来解决这个问题。不幸的是,我无法将评论标记为答案。JObject jData = new JObject();try{    jData = JObject.Parse(response.Content);}catch (JsonReaderException ex){    throw new JsonParseException(ex, response.Content);;}
打开App,查看更多内容
随时随地看视频慕课网APP