【发布时间】:2025-12-20 18:45:11
【问题描述】:
我正在学习如何使用 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 异常设置:
异常屏幕截图(在关闭之前闪烁速度太快,无法看到):
为什么我不能捕捉到这些异常,为什么 Visual Studio 不会中断它们?它仍然显示异常消息,但几乎立即关闭。
【问题讨论】:
-
当我之前看到这种行为是因为调试器调用的非托管代码中发生了异常。尝试关闭所有“Watch”或“Locals”窗口,这样您就无法查看任何变量的内容,然后查看错误是否仍然存在。
-
@ScottChamberlain 关闭它们,同样的交易
标签: c# visual-studio exception-handling emgucv