发生时在Windows Phone中的System.Windows.ni.dll中发生类型为“'System.Reflection.TargetInvocationException'的未处理异常

时间:2013-11-28 09:36:08

标签: c# windows-phone-7 windows-phone-8

创建WP8应用程序,该应用程序使用Web Service来获取,创建,更新&删除数据&显示它。
现在问题是我的应用程序崩溃了

  

未处理的类型异常   发生了''System.Reflection.TargetInvocationException'   System.Windows.ni.dll“inWindows Phone

enter image description here

此异常没有堆栈跟踪&我坚持了几个小时。我注意到,只要比正常情况更频繁地调用服务,就会发生这种异常,但我没有得到实际的原因。

知道这是非常有帮助的 这是什么类型的例外?
2.这会发生什么情况?
3.由于这个例外,我们如何处理应用程序崩溃?

3 个答案:

答案 0 :(得分:14)

您的评论

  

你是对的。得到一个内部异常对象说“在MyApp.ViewModels.CreateViewModel.d__61.MoveNext()---从抛出异常的前一个位置的堆栈跟踪结束---在System.Runtime.CompilerServices.AsyncMethodBuilderCore.b__0(对象状态) “消息:对象引用未设置为对象的实例。

只是在某处显示,你正在调用一个不等待的异步方法:当一个方法返回一个任务时,总是等待它。

你的内部异常应该有一个内部异常(即$ exception.InnerException.InnerException,堆栈跟踪将显示你的NullReferenceException的位置)

当您的代码中没有处理代码中的异常时,会调用UnhandledException事件,并且应用程序不知道如何处理它。 默认情况下,它会使您的应用崩溃。 但是,您可以阻止您的应用在这些情况下崩溃。请参阅this了解更多信息。

要解决您的问题“干净的方式”,您必须找到未等待代码的地方并进行修复。即某处你会发现:

myObject.DoSomethingAsync(); // DoSomethingAsync() returns a task.

改变它:

try
{
   await myObject.DoSomethingAsync(); // DoSomethingAsync() returns a task.
}catch(Exception ex)
{
   // display error message or whatever
}

[edit] 这将处理错误,但您真正想要修复的是nullref异常的原因。我没有那么多线索,但它看起来像一个线程并发问题。

答案 1 :(得分:3)

1.这是什么类型的例外?

当您尝试访问w / s时会发生此异常,并且它将变得过载。

2.这会发生什么情况?

业务逻辑复杂或数据库锁定或无响应

3.我们如何处理因此异常导致的应用崩溃?

处理它我建议做得更好w / s的性能,或者你可以使用递归调用,但它不会解决我认为的问题

答案 2 :(得分:0)

使用任务时

或InvokeRequired

function [true_or_false, matches] = is_in(points, point)

matches = abs([points.x] - point.x) < 1e-7 & abs([points.y] - point.y) < 1e-7 & abs([points.z] - point.z) < 1e-7;
true_or_false = any(matches);