Welche Ausnahmen wirft Newtonsoft.Json.DeserializeObject? Ich möchte damit umgehen.
109
Welche Ausnahmen wirft Newtonsoft.Json.DeserializeObject? Ich möchte damit umgehen.
JSON.NET definiert die folgenden Ausnahmen:
JsonException
JsonReaderException
JsonSerializationException
JsonWriterException
JsonSchemaException
Serialisierungs- oder Deserialisierungsfehler führen normalerweise zu a JsonSerializationException
.
JsonSerializationException
, aber um sicher zu sein, müsstest du den Autor fragen oder in den Quellcode schauen ... Wie auch immer, du kannst einfach fangen,JsonException
wenn du sicher sein willst, nichts zu verpassen, da alle JSON .NET-Ausnahmen erben davon.Beachten Sie, dass die Fehlerbehandlungsdokumentation von Json.NET eine Strategie für den API-Benutzer zeigt, mit Fehlern umzugehen, indem Fehlerereignisse behandelt werden, anstatt Ausnahmen direkt abzufangen. Dies ist sinnvoll, wenn Sie bedenken, dass möglicherweise nur ein Element in einem Array nicht deserialisiert werden kann, und Sie möchten dies möglicherweise detaillierter behandeln als eine monolithische Ausnahme für den gesamten Satz.
Diese Antwort befasst sich mit dem Teil "Ich möchte mit ihnen umgehen" Ihrer Frage, ohne zum Teil "Welche Ausnahmen" zu gelangen. Wie eine andere Antwort zeigt, erben alle Json.NET-Ausnahmen von der JsonException-Klasse. Daher wäre es eine gute Ausfallsicherheit , dies zu erfassen . Es scheint jedoch, dass Sie, wenn Sie wirklich verstehen möchten, was das Auslösen einer Ausnahme verursacht hat, deren
Message
Eigenschaft lesen müssen , nicht basierend auf demException
Typ, da die verschiedenen Typen mehr auf die von Ihnen ausgeführte Aktion ausgerichtet zu sein scheinen als die Fehlerkategorie. Im folgenden Beispielcodeargs.ErrorContext.Error
ist das eine Instanz vonException
.Beispielcode aus der Dokumentation:
quelle