try catch 结构无法截获异常? 没遇到过你这种情况,猜想是try外部出现了异常,加断点调试一下吧! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看Initialize是不是有返回值什么的,是不是通过返回值判断的初始化状态,也就是初始化失败,并不会抛出异常,只是没找到设备 你的异常是在 axXnsSdkDevice.Initialize(); //设备初始化语句 这个里面的··或许这个里面已经对这种异常做了处理的··所以你外部使用的时候不会出异常··· +1axXnsSdkDevice.Initialize(); 这个方法内部如果直接处理了异常的话,你外部就捕捉不到了! 默认情况下,.NET try catch 不能捕捉WIN32访问出现的异常,你需要在函数声明上加上一个标记,如: [System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions] private void NativeExceptionCatch() { try { //调用方法 } catch (Exception ex) { Console.WriteLine(ex.Message); } }这个方法,只适用于 .net 4.0及以版本。 +1axXnsSdkDevice.Initialize(); 这个方法内部如果直接处理了异常的话,你外部就捕捉不到了!丢个板砖,标准的概念不清,异常要是在里面被处理了,程序就不可能崩溃了。try-catch结构只能捕获托管代码产生的异常,非托管代码它无法捕获,你这里执行的是非托管代码方法,自然是捕获不到异常的了。异常需要对方自己处理好,不处理好的非托管代码本身就有问题。 axXnsSdkDevice.Initialize(); 没有抛出异常,自己处理掉了,你当然截获不到。 try catch 处理托管代码,CLR来处理这个,非托管代码是另一个进程处理,CLR当碰到非托管代码,会激发相应的进程处理。 +1axXnsSdkDevice.Initialize(); 这个方法内部如果直接处理了异常的话,你外部就捕捉不到了!丢个板砖,标准的概念不清,异常要是在里面被处理了,程序就不可能崩溃了。try-catch结构只能捕获托管代码产生的异常,非托管代码它无法捕获,你这里执行的是非托管代码方法,自然是捕获不到异常的了。异常需要对方自己处理好,不处理好的非托管代码本身就有问题。这不是在说废话么··· 简单来说就是你的方法执行失败,和你的方法抛出异常是两码事,你的摄像机不在线,初始化肯定失败,是方法执行失败,不是这个方法产生了异常axXnsSdkDevice.Initialize()。通常是通过返回值来进行处理,而不是try起来 +1axXnsSdkDevice.Initialize(); 这个方法内部如果直接处理了异常的话,你外部就捕捉不到了!丢个板砖,标准的概念不清,异常要是在里面被处理了,程序就不可能崩溃了。try-catch结构只能捕获托管代码产生的异常,非托管代码它无法捕获,你这里执行的是非托管代码方法,自然是捕获不到异常的了。异常需要对方自己处理好,不处理好的非托管代码本身就有问题。+1,建议使用Marshal.GetLastWin32Error() C#如何引用资源内的dll 不同的窗体之间不能改变其Text值,急!万分感激!! datagridView排序问题 如何建立隐藏文件夹 listbox是否可以像菜单一样,让光标跟随鼠标走? 顶了就有分:vs2003转换vs2005,调试出错了…… 向数据库添加记录的问题,请高手看看错误在那哦? C# 邮件群发 我在安装.net的时候只装了c#.net,可是在编辑的时候连system.windows.forms都不支持,难道还有安装其他的东东吗? redis 安装在linux和windows 性能和速度上区别大吗 求助,急急急 C#如何调用c写的dll里面的联合体
你需要在函数声明上加上一个标记,如:
[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]
private void NativeExceptionCatch()
{
try
{
//调用方法
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
这个方法,只适用于 .net 4.0及以版本。
丢个板砖,标准的概念不清,异常要是在里面被处理了,程序就不可能崩溃了。try-catch结构只能捕获托管代码产生的异常,非托管代码它无法捕获,你这里执行的是非托管代码方法,自然是捕获不到异常的了。异常需要对方自己处理好,不处理好的非托管代码本身就有问题。
丢个板砖,标准的概念不清,异常要是在里面被处理了,程序就不可能崩溃了。try-catch结构只能捕获托管代码产生的异常,非托管代码它无法捕获,你这里执行的是非托管代码方法,自然是捕获不到异常的了。异常需要对方自己处理好,不处理好的非托管代码本身就有问题。
这不是在说废话么···
简单来说就是你的方法执行失败,和你的方法抛出异常是两码事,你的摄像机不在线,初始化肯定失败,是方法执行失败,不是这个方法产生了异常axXnsSdkDevice.Initialize()。通常是通过返回值来进行处理,而不是try起来
丢个板砖,标准的概念不清,异常要是在里面被处理了,程序就不可能崩溃了。try-catch结构只能捕获托管代码产生的异常,非托管代码它无法捕获,你这里执行的是非托管代码方法,自然是捕获不到异常的了。异常需要对方自己处理好,不处理好的非托管代码本身就有问题。
+1,建议使用Marshal.GetLastWin32Error()