为什么try-catch块无法处理异常?

发布于 2024-12-03 12:32:05 字数 349 浏览 1 评论 0原文

FSDKCam.GetVideoFormatList 是来自外部 .NET dll 的方法。正如您所看到的图像,它在 try-catch 块中抛出异常。

try
{
    FSDKCam.GetVideoFormatList(ref cameraList[0], out formatList, out count);
    if (count > 0) cmbCameraList.Items.Add(cam);
}
catch { }

屏幕截图:

在此处输入图像描述

FSDKCam.GetVideoFormatList is a method from external .NET dll. As you see the image, it throws an exception in try-catch block.

try
{
    FSDKCam.GetVideoFormatList(ref cameraList[0], out formatList, out count);
    if (count > 0) cmbCameraList.Items.Add(cam);
}
catch { }

Screenshot:

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空城旧梦 2024-12-10 12:32:05

在 .NET 4 中,默认情况下无法捕获 AccessViolationException

请参阅 legacyCorruptedStateExceptionsPolicy 配置元素。他们这样做是因为人们在整个代码中都使用try {} catch (Exception) {},并且捕获AccessViolationException(以及其他一些异常)通常不是一个好主意并继续。

此外,请参阅 http://msdn.microsoft.com/en-us/magazine/ dd419661.aspx

In .NET 4, AccessViolationException is not catchable by default.

See the legacyCorruptedStateExceptionsPolicy configuration element. They did this because people have try {} catch (Exception) {} throughout their code and it is usually not a good idea to catch AccessViolationException (along with a few others) and continue.

Additionally, see http://msdn.microsoft.com/en-us/magazine/dd419661.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文