1

エラーをファイルに記録しようとしていますが、エラーが発生したときにcatchブロックを実行できないようです。コードの例を次に示します。

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

問題は、例外がある場合、組み込みのWebサーバーから、未処理の例外というエラーがスローされることです。デバッグすると、コードは例外で停止し、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

そのメソッドは、さまざまなタイプの例外をスローする可能性があります

  • InvalidCastException
  • SqlException
  • IOException
  • InvalidOperationException
  • ObjectDisposedException
于 2013-03-07T03:12:03.383 に答える