1

我正在尝试将错误记录到文件中,但似乎无法在发生错误时运行 catch 块。以下是代码示例:

try  
{  
     cmd.ExecuteNonQuery();  
}  
catch (MySQLException ex)  
{   
     //run some logging code  
}  
finally  
{  
     //clean up the resources  
}  

问题是当出现异常时,我从内置的网络服务器中得到错误,这是一个未处理的异常。当我调试代码在异常处停止然后继续到 finally 块。有人可以在这里指出我正确的方向吗?

4

3 回答 3

10

ExecuteNonQuery()引发类型异常SqlException

所以我不确定是什么MySQLException,但你需要抓住一个SqlException.

看看这个以获得额外的信息:

于 2013-03-07T02:01:30.803 回答
1

似乎抛出的异常不是类型MySQLException或任何从它派生的异常。所以 catch 块永远不会捕获它,finally 块会直接执行!

要检查引发了哪种异常,请将代码修改为:

try  
{  
   cmd.ExecuteNonQuery();  
}  
catch (MySQLException ex)  
{   
   //run some logging code  
}  
catch (Exception ex)
{
   // any other exception will be handled here
}
finally  
{  
   //clean up the resources  
} 
于 2013-03-07T02:12:15.977 回答
0

该方法可以抛出不同类型的异常

  • 无效转换异常
  • 异常
  • IO异常
  • 无效操作异常
  • ObjectDisposedException
于 2013-03-07T03:12:03.383 回答