2

我不确定是否有人遇到过这个问题。

我正在 VS 2012 中开发 C# Windows Phone 8 应用程序。

我最近收到了 System.NotImplementedException 类型的未处理异常。

尽管事实上我的所有代码都包含在 try/catch 块中,并且没有抛出未实现异常的方法存根。

在输出中是:

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]
4

1 回答 1

1

对于任何有类似问题的人,我找到了明显的原因。

我已经从 Surface 的 Win8 应用程序中移植了一些涉及文件输入/输出的代码,并且在其中一行中,忽略了更改

StorageFolder storageFolder = KnownFolders.DocumentsLibrary;

到其对应的

IsolatedStorageFile storageFolder = IsolatedStorageFile.GetUserStoreForApplication();

不知何故,这没有在 try/catch 块中被捕获,但是当我修复它时,未捕获的 notimplementedexception 不再发生。

于 2013-01-24T21:55:35.620 回答