繁体   English   中英

C#无法捕获代码或调试器中的异常

[英]C# not catching exceptions in code, or with debugger

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

我的代码:

using System;
using Emgu.CV;
using Emgu.CV.UI;
using Emgu.CV.Structure;
using Emgu.CV.Util;
using Emgu.CV.CvEnum;

namespace OpenCV1
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                using (var image = new Image<Bgr, byte>(@"C:\Users\Administrator\Downloads\receipt-1.jpg"))
                {
                    float scale = (float)500 / (float)image.Height;
                    var resized = image.Resize(scale, Emgu.CV.CvEnum.Inter.Nearest);
                    var grey = image.Convert<Gray, byte>();
                    grey = grey.SmoothGaussian(5, 5, 1, 1);
                    var edged = grey.Canny(25, 100);

                    //ImageViewer.Show(edged, "edged");

                    VectorOfVectorOfPointF contours = new VectorOfVectorOfPointF();
                    Mat hierarchy = null;
                    CvInvoke.FindContours(edged.Copy(), contours, hierarchy, RetrType.List, ChainApproxMethod.ChainApproxSimple);
                    Console.ReadLine();
                }
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }
        }
    }
}

我的VS2015例外设置:

在此处输入图片说明

Exception的屏幕截图 (关闭前闪烁的速度几乎看不到):

在此处输入图片说明

为什么我不能捕捉到这些例外,为什么Visual Studio不会打破它们? 它仍然显示异常消息,但是几乎立即关闭。

尝试从catch块中删除捕获的异常类型。 如下所示:

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

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

尝试使用CvException而不是Exception

道格

从EmguCV 2.4.2迁移到3.2.0后,我遇到了同样的问题。 松开头发后,我找到了适合我的解决方案。

工具->选项->调试->常规

启用选项“ 使用旧版C#和VB表达式求值器”

在此处输入图片说明

根据VS2015的文档,这将执行以下操作:调试器将使用Visual Studio 2013 C#/ VB表达式评估器,而不是基于Visual Studio 2015基于罗斯林的表达式评估器。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM