私は次のコードでASP.Netアプリケーション有する:SQLExceptionがキャッチされていない
try { sql = new SqlProc("prcCustomerAgeSelect", SqlProc.InParam("@DateFrom", SqlDbType.DateTime, 8, _OrderDateFrom), SqlProc.InParam("@DateTo", SqlDbType.DateTime, 8, _OrderDateTo), sql.Command.CommandTimeout = 1; dt = sql.ExecuteTable(); } catch (SqlException ex) { Filter.ErrorMessage = "Please narrow your search criteria."; }
注ライン:
sql.Command.CommandTimeout = 1。
これにより、SqlExceptionがスローされます(テスト用)。
キャッチブロックがこの例外をキャッチするとは思っていましたが、そうではありません。代わりに、私は得る:
タイムアウトが切れている。操作が完了する前にタイムアウト時間が経過したか、サーバーが応答していません。
[SqlException(0x80131904):タイムアウトが期限切れです。操作が完了する前にタイムアウト時間が経過しているか、サーバーが応答していません。]
なぜそれをキャッチしませんか?間違ったタイプを使用していますか?私はここで何が欠けていますか?
ありがとうございます!
-Ev
実際の*コードを投稿してください。あなたのコードはコンパイルされず、正確なコードなしで何が起こっているのかを正確に評価することはできません。 – Nix
'Console.WriteLine(ex.GetType()。Name)'の出力は何ですか? – ChrisWue