C#没有捕获代码或调试器中的异常

时间:2017-06-15 19:41:25

标签: c# visual-studio exception-handling emgucv

我正在学习如何使用Emgu,并且我遇到的问题是VS2015没有打破它的异常,以及它没有被try / catch块捕获的异常。 visual studio中的异常通知会闪烁一秒钟,然后程序退出。

我的代码:

function filter_search($query) {
    if ($query->is_search) {
    $query->set('post_type', array('post', 'page'));
    };
    return $query;
};
add_filter('pre_get_posts', 'filter_search');

我的VS2015例外设置:

enter image description here

Exception的屏幕截图(在关闭之前,此闪烁几乎无法看到):

enter image description here

为什么我不能抓住这些例外,为什么视觉工作室不会破坏它们?它仍然显示异常消息,但它几乎立即关闭。

3 个答案:

答案 0 :(得分:0)

尝试从catch块中删除捕获的异常类型。请按如下方式进行:

try
{
   // logic here...
}
catch
{
    // handler
}

这应该捕获“异常”特定处理程序未捕获的内容。或者只是在现有的下方添加一个额外的捕获块,看看是否有捕获它。

答案 1 :(得分:0)

尝试使用CvException而不是Exception

道格

答案 2 :(得分:0)

将我的应用程序从EmguCV 2.4.2迁移到3.2.0后,我遇到了同样的问题。失去一些头发后,我找到了一个适合我的解决方案。

转到

工具 - >选项 - >调试 - >一般

启用选项使用旧版C#和VB表达式评估程序

enter image description here

根据VS2015 doc,这将执行以下操作:调试器将使用Visual Studio 2013 C#/ VB表达式评估程序,而不是基于Visual Studio 2015 Roslyn的表达式计算器。

对我来说启用此选项解决了问题。现在显示异常对话框,并且不再杀死调试过程。