我正在研究C#WPF应用程序。我正在使用DLL(不是我开发的)。我正在这样使用(简化):
try
{
Bitmap bmp = new Bitmap(filePath);
// Use the DLL
var worker = theDLL.loadImage(bmp);
status state = worker.start();
if (state = theDLL.sta.OK)
{
return "OK"
}
else
{
state = worker.tryOtherMethod();
}
}
catch (Exception e)
{
// Do something with e
}
有时(并非总是)我有一个未处理的异常。此异常未捕获,我的应用程序崩溃了:
无效的参数传递给认为无效的函数 参数致命。
我看到此异常来自C ++代码,但我无法捕获它(即使使用AppDomain.CurrentDomain.UnhandledException
或Dispatcher.UnhandledException
也是如此)。
如何防止崩溃?
编辑:
我尝试单独使用catch
和catch (Win32Exception e)
来捕获异常,但都不能解决我的问题。
我仍然有此错误:
答案 0 :(得分:0)
您只能编写catch
(不写(Exception e)
),这将允许您捕获本机异常。
try
{
Bitmap bmp = new Bitmap(filePath);
// Use the
var worker = theDLL.loadImage(bmp);
status state = worker.start();
if (state = theDLL.sta.OK)
{
return "OK"
}
else
{
state = worker.tryOtherMethod();
}
}
catch (Exception e)
{
// Exceptions derived from Exception
}
catch
{
// Native exceptions
}