未处理的系统.未实现异常,没有可用的源

本文关键字:异常 系统 实现 未处理 | 更新日期: 2023-09-27 17:55:55

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

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

我最近收到了系统未实现异常类型的未处理异常。

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

在输出中是:

在 MyAppName 中发生了类型为"System.NotImplementException"的第一次机会异常.DLL

MyAppName 中发生类型为"System.NotImplementException"的异常.DLL并且在托管/本机边界之前未处理

如果我点击"继续"继续调试,我会在VS中收到一个错误消息弹出对话框:

System.Windows.ni 中发生了类型为"System.NotImplementException"的未处理异常.dll

如果我在此处选择"中断",则打开的堆栈跟踪显示"无可用源;调用堆栈仅包含外部代码。 此线程在调用堆栈上仅使用外部代码帧停止。等等等等。

这是应用崩溃后突出显示的代码:

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]

未处理的系统.未实现异常,没有可用的源

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

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

StorageFolder storageFolder = KnownFolders.DocumentsLibrary;

到其相应的

IsolatedStorageFile storageFolder = IsolatedStorageFile.GetUserStoreForApplication();

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