我在已部署的系统上收到以下错误:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: S. Path '', line 0, position 0.
at Newtonsoft.Json.JsonTextReader.ParseValue()
at Newtonsoft.Json.JsonTextReader.ReadInternal()
at Newtonsoft.Json.JsonTextReader.Read()
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at JsonWrapper.DeserializeJson[T](String data, ITraceWriter tracer)
这是来自DLL的简化JsonWrapper.DerserializeJson代码:
public static T DeserializeJson<T>(string data, ITraceWriter tracer) {
try {
return JsonConvert.DeserializeObject<T>(data, new JsonSerializerSettings { TraceWriter = tracer });
} catch (JsonReaderException jrex) {
throw new CustomException("Unable to deserialize Json message.", jrex);
}
}
我知道为什么会抛出异常,但是我无法弄清楚为什么它没有被try-catch块捕获。
此代码是我们的一个客户端正在使用的DLL。我希望这是一个只能在DLL中完成的修复。
对此的任何见解都会很棒!
答案 0 :(得分:0)
我确实发现我没有在我的实现方法中捕获正确的CustomException;一旦修复,我再也无法得到JIT错误。
仍然没有弄清楚为什么JsonReaderException被显示为JIT错误而不是我的CustomException。