gpt4 book ai didi

c# - 如何抑制/捕获 System.ObjectDisposedException?

转载 作者:太空狗 更新时间:2023-10-30 00:06:37 25 4
gpt4 key购买 nike

我有一个偶尔会抛出此异常的应用程序:

System.ObjectDisposedException: Cannot access a disposed object.
Object name: "Panel".
bei System.Windows.Forms.Control.CreateHandle()
bei System.Windows.Forms.Control.get_Handle()
bei System.Windows.Forms.ContainerControl.FocusActiveControlInternal()
bei System.Windows.Forms.Form.set_Active(Boolean value)
bei System.Windows.Forms.Form.WmActivate(Message& m)
bei System.Windows.Forms.Form.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

有没有办法在不触及代码的情况下理想地抑制这个异常?我正在考虑一些注册表魔术或深奥的 .NET 配置。

此外,我当然也对捕获此异常的方法感兴趣。我似乎没有钩子(Hook)来捕捉这个异常......当然它是不可重现的......

最佳答案

运行时试图告诉你一些事情。不要忽视它!捕获并忽略异常不会使问题消失。

特定的异常告诉您您正在尝试在处理后使用面板。所以你在这里基本上有两个选择:1)在你用完它之前不要公开。 2) 废弃后请勿使用。

编辑:为了帮助您解决问题,您可以设置 ADPlus 来为该特定异常创建转储文件。这可以让您了解为什么会发生这种情况。 John Robbins 有一篇关于如何做到这一点的 Bugslayer 文章。请看http://msdn.microsoft.com/en-us/magazine/cc163530.aspx .

关于c# - 如何抑制/捕获 System.ObjectDisposedException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1612001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com