System.AccessViolationException抛出的异常通过try catch块无法捕获,通过在方法上放置[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions] 即可被捕获。
[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]
private void btnLogion_Click(String txtIP)
{
Console.WriteLine("启动线程 ip = " + txtIP);
//多连接时 m_handle 用数组表示
try {
m_handle = CR.ZNYKTY6.SzLPRClient_OpenEx(txtIP, 8557, null, null);//视频连接 端口为8557 开启1080P 视频端口 8556 开启D1视频
}
catch (System.AccessViolationException e)
{
Console.WriteLine(e.Message);
return;
}
可以看到,异常就被捕获到了。