¿Qué excepciones lanza Newtonsoft.Json.DeserializeObject? Quiero manejarlos.
109
¿Qué excepciones lanza Newtonsoft.Json.DeserializeObject? Quiero manejarlos.
JSON.NET define las siguientes excepciones:
JsonException
JsonReaderExceptionJsonSerializationExceptionJsonWriterExceptionJsonSchemaExceptionLos errores de serialización o deserialización normalmente darán como resultado un archivo JsonSerializationException.
JsonSerializationException, pero para estar seguro tendrías que preguntarle al autor o buscar en el código fuente ... De todos modos, puedes cogerJsonExceptionsi quieres asegurarte de no perderte nada, ya que todo JSON Las excepciones .NET heredan de él.Tenga en cuenta que la documentación de manejo de errores de Json.NET muestra una estrategia para que el usuario de la API maneje los eventos de error en lugar de detectar excepciones directamente. Esto tiene sentido si se tiene en cuenta que quizás solo un elemento de una matriz puede fallar en la deserialización, y es posible que desee manejar esto de una manera más granular que una excepción monolítica para todo el conjunto.
Esta respuesta aborda la parte "quiero manejarlos" de su pregunta sin llegar a la parte "qué excepciones". Como muestra otra respuesta, todas las excepciones de Json.NET heredan de la clase JsonException , por lo que detectar esto sería una buena prueba de fallos. Sin embargo, parece que si realmente desea comprender qué causó que se lanzara una excepción, necesitaría leer su
Messagepropiedad, no manejar según elExceptiontipo, ya que los diferentes tipos parecen estar más orientados a la acción que está realizando que la categoría de error. En el siguiente código de ejemplo,args.ErrorContext.Errores una instancia deException.Código de ejemplo de la documentación:
fuente