- PR -

try-catchと@@errorによるエラーハンドリングの違い

1
投稿者投稿内容
jojo
会議室デビュー日: 2007/03/19
投稿数: 16
投稿日時: 2007-10-09 18:57
お世話になります。
SQL Server 2005のTransact-SQLのエラー処理についてご教授ください。

@@ERRORでエラーは検出できるかと思いますが、
@@ERROR関数で補足できるエラーは必ずtry-catchで捕捉できるのでしょうか?
(また、その逆も真なのでしょうか?)

下記ページを見てみたのですが、
その点は明確になりませんでした。

http://technet.microsoft.com/ja-jp/library/ms164086.aspx
http://technet.microsoft.com/ja-jp/library/ms175976.aspx

Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2007-10-09 21:17
上記のリンクのドキュメントに、
「TRY...CATCH 構造は、データベース接続を閉じない、重大度が 10 を超えるすべての実行エラーを検出します。」
「重大度 0 〜 9 までのシステム エラーがデータベース エンジン によって発生することはありません。」

とあるので自分で重大度 0 〜 9でRAISERRORしない限りはすべてのエラーが検出可能だと思います。
jojo
会議室デビュー日: 2007/03/19
投稿数: 16
投稿日時: 2007-10-10 10:35
なるほど、、、
そのように解釈できますね。

ご回答ありがとうございました。
助かりました。
1

スキルアップ/キャリアアップ(JOB@IT)