C# Xamarin Studio中的奇怪异常堆栈跟踪
获取下一个奇怪的Xamarin Studio行为: 我在某个类的特定行中抛出硬编码异常 结果如下:C# Xamarin Studio中的奇怪异常堆栈跟踪,c#,ios,xamarin,xamarin-studio,C#,Ios,Xamarin,Xamarin Studio,获取下一个奇怪的Xamarin Studio行为: 我在某个类的特定行中抛出硬编码异常 结果如下: catch exception always in Main class,stack trace中没有我的特定行方法OpenRelatedView()似乎是从非UI线程调用的,因为您在其中使用的是InvokeOnMainThread()。所以我假设您正在使用Task.Run()调用它。所有异步代码都将隐式包装到try-catch中 您必须捕获并处理此异常。每个任务对象都有一个异常,该异常将包含异
catch exception always in Main class,stack trace中没有我的特定行方法
OpenRelatedView()
似乎是从非UI线程调用的,因为您在其中使用的是InvokeOnMainThread()
。所以我假设您正在使用Task.Run()
调用它。所有异步代码都将隐式包装到try-catch中
您必须捕获并处理此异常。每个任务
对象都有一个异常
,该异常将包含异步执行期间发生的所有异常。如果正确使用wait
,这些异常将被取消包装。您的方法具有void
返回类型,因此无法等待。因此,异常将保持未被发现,直到有人处理它。在某些平台上(例如windows Phone),您永远不会注意到出现了问题
然而,对于Xamarin.iOS,在应用程序根级别有一个处理所有未捕获异常的处理程序,这就是为什么您会在那里看到异常
Steven Clery在任务和异步编码方面有很多优点。方法
OpenRelatedView()
似乎是从非UI线程调用的,因为您在其中使用的是InvokeOnMainThread()
。所以我假设您正在使用Task.Run()
调用它。所有异步代码都将隐式包装到try-catch中
您必须捕获并处理此异常。每个任务
对象都有一个异常
,该异常将包含异步执行期间发生的所有异常。如果正确使用wait
,这些异常将被取消包装。您的方法具有void
返回类型,因此无法等待。因此,异常将保持未被发现,直到有人处理它。在某些平台上(例如windows Phone),您永远不会注意到出现了问题
然而,对于Xamarin.iOS,在应用程序根级别有一个处理所有未捕获异常的处理程序,这就是为什么您会在那里看到异常
Steven Clery在任务和异步编码方面有很多优点