我不确定是否有人遇到此问题。
我正在VS 2012中开发C#Windows Phone 8应用程序。
最近,我收到了System.NotImplementedException类型的未处理异常。
尽管事实是我的所有代码都被try / catch块包围,并且没有方法存根抛出notimplementedexception。
在输出是:
MyAppName.DLL中发生了'System.NotImplementedException'类型的第一次机会异常
MyAppName.DLL中发生了类型为'System.NotImplementedException'的异常,在托管/本地边界之前未进行处理
如果我单击“继续”以继续调试,则会在VS中弹出错误消息对话框:
System.Windows.ni.dll中发生了类型为'System.NotImplementedException'的未处理异常
如果在此处选择“中断”,打开的堆栈跟踪将显示“没有可用的源;调用堆栈仅包含外部代码。此线程仅在调用堆栈上具有外部代码帧时停止,等等。”
这是应用程序崩溃后突出显示的代码:
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
if (Debugger.IsAttached)
{
// An unhandled exception has occurred; break into the debugger
Debugger.Break();
}
}
编辑:这是堆栈:
Call stack with external code
System.Windows.ni.dll!MS.Internal.JoltHelper.OnUnhandledException(object sender, System.UnhandledExceptionEventArgs args)
mscorlib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.ThrowAsync.AnonymousMethod_1(object state)
mscorlib.ni.dll!System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(object state)
mscorlib.ni.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx)
mscorlib.ni.dll!System.Threading.QueueUserWorkItemCallback..System.Threading.|ThreadPoolWorkItem.ExecuteWorkItem()
mscorlib.ni.dll!System.Threading.ThreadPoolWorkQueue.Dispatch()
mscorlib.ni.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
[Native to Managed Transition]
最佳答案
对于任何有类似问题的人,我都找到了明显的原因。
我已经移植了一些涉及Win8应用程序针对Surface的文件输入/输出的代码,并且其中一行忽略了更改
StorageFolder storageFolder = KnownFolders.DocumentsLibrary;
到其对应的
IsolatedStorageFile storageFolder = IsolatedStorageFile.GetUserStoreForApplication();
不知何故,它没有被try / catch块捕获,但是当我修复它时,未捕获的notimplementedexception不再发生。