问题标签 [unhandled-exception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 控制台应用程序 - 无法捕获未处理的异常
我编写了一个非常简单的 C# 控制台应用程序,它将打开一个 Crystal Report,刷新它并将其作为 PDF 保存到指定位置。
在 VS2005 中运行时一切正常;pdf文件按预期生成。当我将 .exe 复制到我的根 C: 驱动器并从命令行运行它时,我得到一个对话框,指出“CrystalGenerator 已停止工作” - 但仍会生成 pdf 文件!查找此对话框的可能原因表明发生了未处理的异常,但 Main 方法的全部内容包含在 try/catch 中,因此这不是我的问题。
查看事件日志,我看到许多条目说明“找不到插入索引 (%1) 的替换字符串”,但找不到对此含义的合理解释。
好处是,如果我将文件复制到运行 Server 2003(它打算在其中运行)的机器上,则命令运行没有错误 - 但我想知道为什么该应用程序在 Vista 上的行为异常以及如何解决它。
提前致谢。
c# - .NET WinForms 应用程序中的异常何时可以被吃掉而不会被捕获或冒泡到 Windows 异常?
在我们代码的几个地方,我们注意到如果在调试器下运行,它会显示代码中有一个未处理的异常,但是如果在调试器之外运行,它会完全忽略异常,就好像它被捕获一样。我们有一个异常处理程序,它会弹出一个错误提交对话框,该对话框连接到 Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 并且这些似乎都没有捕获它们。我们还记录了我们的异常,日志中没有任何内容。
这有哪些可能的原因?
编辑:似乎它不依赖于异常抛出的类型,而是它被抛出的位置。只需添加以下内容即可对此进行测试:
它会显示在调试器下,但不会显示在外面,所以在我们的例子中,它不是 ThreadAbortedException 或任何依赖于它的特定类型的异常。
c++ - C++ 中的 Visual Studio 调试错误
由于某种原因,一旦我引用第三方供应商的 dll 类,集成调试器就会导致错误。相同的代码在构建并作为发行版运行时运行,独立运行。调试和发布的两个属性应该是相同的,因为我没有真正改变它们。我将 lib 文件添加到两个构建的路径中。我只是有:
当它到达这里时,我得到了这个异常:
MTGO SO Bot.exe 中 0x78a3f623 (mfc90ud.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0xf78e4568。
它出现在:afxtls.cpp,第 252 行。
这是一个 MFC 应用程序,但我并没有真正使用任何 MFC,除了一个非常简单的 gui,它触发了一个全是 win32 的事件。我正在使用 Visual Studio 2008 Express。
error-handling - 如果出现未处理的代码异常,向最终用户展示最合适的内容是什么?
在 Web 应用程序中,当您的服务器端代码出错并遇到未处理的异常时,告诉最终用户发生了什么最合适的方法是什么?
你只是说“发生了意外的事情,我们很抱歉”。您是否应该尝试了解异常是什么以及用户试图做什么,并让他们知道如何恢复,如果可能的话?
c# - 捕获中的 MessageBox.Show 问题
当我尝试运行以下代码时,它会导致未处理的异常。经过对代码的大量修改后,如果注释掉 MessageBox.Show 行,我发现问题就消失了!不同寻常的是,我在代码的其他部分的其他 catch{ } 段中使用了 MessageBox.Show 语句,没有任何问题。我的问题是有谁知道它为什么会导致异常?
(Ps Reports_Group_Chooser 是一个 ComboBox)
编码:
错误(大部分):
未处理的异常:System.NullReferenceException:对象引用未设置为 System.Windows.Forms.ComboBox.DropDownListBoxFinished () [0x00000] at (wrapper remoting-invoke-with-check) System.Windows.Forms.ComboBox 处的对象实例:DropDownListBoxFinished () 在 System.Windows.Forms.ComboBox+ComboListBox.HideWindow () [0x00000] 在 System.Windows.Forms.ComboBox+ComboListBox.OnMouseUp (System.Windows.Forms.MouseEventArgs e) [0x00000] 在 System.Windows .Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00000] 在 System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] 在 System.Windows.Forms.ComboBox +ComboListBox.WndProc (System.Windows.Forms.Message& m) [0x00000] 在 System.Windows.Forms.Control+ControlWindowTarget。OnMessage (System.Windows.Forms.Message& m) [0x00000] 在 System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] 在 System.Windows.Forms.NativeWindow.WndProc ( IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] 在 System.Windows.Forms.XplatUIX11.DispatchMessage (System.Windows.Forms.MSG & msg) [0x00000] 在 System.Windows.Forms.XplatUI.DispatchMessage (System .Windows.Forms.MSG& msg) [0x00000] 在 System.Windows.Forms.Application.RunLoop(布尔模式,System.Windows.Forms.ApplicationContext 上下文)[0x00000]WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] 在 System.Windows.Forms.XplatUIX11.DispatchMessage (System.Windows.Forms.MSG & msg) [0x00000] 在 System.Windows.Forms.XplatUI.DispatchMessage (System.Windows.Forms.MSG& msg)[0x00000] 在 System.Windows.Forms.Application.RunLoop (布尔模式,System.Windows.Forms.ApplicationContext 上下文)[0x00000]WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] 在 System.Windows.Forms.XplatUIX11.DispatchMessage (System.Windows.Forms.MSG & msg) [0x00000] 在 System.Windows.Forms.XplatUI.DispatchMessage (System.Windows.Forms.MSG& msg)[0x00000] 在 System.Windows.Forms.Application.RunLoop (布尔模式,System.Windows.Forms.ApplicationContext 上下文)[0x00000]
任何帮助感谢迈克尔
更新这是我的代码中一个工作 MessageBox.Show 的示例,它不会导致错误:
更新更新:
似乎问题只是在组合框事件中有 MessageBox.Show:以下代码仍然显示相同的错误:
c# - 你会不会捕获异常,或者抛出一个不会被捕获的异常?
我已经处理了我会抛出/重新抛出异常的情况,因为我知道围绕它的代码会捕获特定的异常。但是有没有任何时候你想抛出一个异常,知道它不会被捕获?
或者至少,不捕获异常?
除非处理正确,否则异常会立即停止应用程序?所以我想我是在问你是否想故意让你的应用程序死掉?
.net - .Net ThreadPool 线程的异常
重复: 如何从 ThreadPool.QueueUserWorkItem 中捕获异常?
我在 .Net ThreadPool 上为大量独立的远程调用排队多个委托,这些调用本身调用多个数据库和其他离线资源。通过在 ThreadPool 上排队这些调用,我可以同时运行它们并最小化整体延迟。
但是整个批处理需要事务处理,IE,只有在所有子线程都成功的情况下,才需要允许父线程的输出继续进行。我已经将子线程编码为在失败时引发自定义异常,但我发现这会导致父线程崩溃,因为这些异常不能在父线程中“捕获”......
我已经阅读了发生这种情况时 CLR 抛出的 UnHandledExceptionEvent 的信息,但是我需要在这些子线程排队和产生的方法中“处理”这个异常,以根据孩子的成功控制立即的下游处理threeads... 我该怎么做呢?
opencv - 0x10012c5d (highgui110.dll) 处未处理的异常
我的机器上安装了 OpenCV 库,一切正常,直到我决定尝试新版本的库1.1pre。从那一刻起,我收到以下错误:
我已经尝试卸载并重新安装 lib....同样的事情发生了。我能做些什么?我该如何解决这个问题?
我在 Windows Vista 操作系统上使用 VS 2005 Express Edition。
.net - 为什么 UnhandledExceptionEventArgs.ExceptionObject 是对象而不是异常?
为什么是UnhandledExceptionEventArgs.ExceptionObject
一个对象而不是一个Exception
?
我附在AppDomain.UnhandledException
.
我想投到UnhandledExceptionEventArgs.ExceptionObject
一个Exception
并询问它。
考虑到这一点,它会永远为空吗?
MSDN 文档不是特别有用。
获取未处理的异常对象。
c# - BackgroundWorker 中未处理的异常
我有一个小型 WinForms 应用程序,它利用 BackgroundWorker 对象来执行长时间运行的操作。
后台操作偶尔会引发异常,通常是当有人打开正在重新创建的文件时。
无论代码是否从 IDE 运行,.NET 都会弹出一个错误对话框,通知用户发生了未处理的异常。使用 Release 配置编译代码也不会改变这一点。
根据MSDN:
如果操作引发了您的代码无法处理的异常,BackgroundWorker 会捕获该异常并将其传递给 RunWorkerCompleted 事件处理程序,在该处理程序中它作为 System.ComponentModel..::.RunWorkerCompletedEventArgs 的 Error 属性公开。如果您在 Visual Studio 调试器下运行,则调试器将在 DoWork 事件处理程序中引发未处理异常的位置中断。
我希望偶尔会抛出这些异常,并希望在 RunWorkerCompleted 事件中而不是在 DoWork 中处理它们。我的代码工作正常,错误在 RunWorkerCompleted 事件中得到了正确处理,但我无法终生弄清楚如何停止抱怨“未处理异常”发生的 .NET 错误对话框。
BackgroundWorker 不应该自动捕获该错误吗?这不是 MSDN 文档所说的吗?我需要做什么来通知 .NET 这个错误正在被处理,同时仍然允许异常传播到 RunWorkerCompletedEventArgs 的 Error 属性中?