回答編集履歴

3

引用マークが落ちていたので追加

2022/05/01 02:49

投稿

退会済みユーザー
test CHANGED
@@ -43,11 +43,11 @@
43
43
 
44
44
  余計なものを catch しないよう、PK 制約違反が発生するコード一行のみを囲む。
45
45
 
46
- ②下記の例ではtry内に更にtry-catchを記載していますが
46
+ > ②下記の例ではtry内に更にtry-catchを記載していますが
47
47
 
48
48
  外側の try はどこで例外が発生しても必ず connection.Close(); に制御が飛んで接続リークを防止するため。内側の try は上に説明した通り。
49
49
 
50
- ③e1.Messageは読み取り専用とのエラーが出てしまいます。
50
+ > ③e1.Messageは読み取り専用とのエラーが出てしまいます。
51
51
 
52
52
  質問のコードの内側の catch 内のコードはメチャクチャで議論の対象になるようなものではありません。Exception を catch することがあるとすると、例えば、原因不明の問題が発生していてその調査のためログを取るためぐらいでしょうか。ログを取ったら即 throw し、それをランタイムに拾わせてアプリケーションを停止させます。
53
53
 

2

訂正

2022/05/01 01:13

投稿

退会済みユーザー
test CHANGED
@@ -45,7 +45,7 @@
45
45
 
46
46
  ②下記の例ではtry内に更にtry-catchを記載していますが
47
47
 
48
- 外側の try はどこで例外が発生しても必ず connection.Close(); に制御が飛んで接続リークを防止するため内側の try は上に説明した通り。
48
+ 外側の try はどこで例外が発生しても必ず connection.Close(); に制御が飛んで接続リークを防止するため内側の try は上に説明した通り。
49
49
 
50
50
  ③e1.Messageは読み取り専用とのエラーが出てしまいます。
51
51
 

1

追加

2022/05/01 01:11

投稿

退会済みユーザー
test CHANGED
@@ -49,7 +49,7 @@
49
49
 
50
50
  ③e1.Messageは読み取り専用とのエラーが出てしまいます。
51
51
 
52
- catch 内のコードはメチャクチャで議論の対象になるようなものではありません。Exception を catch することがあるとすると、例えば、原因不明の問題が発生していてその調査のためログを取るためぐらいでしょうか。ログを取ったら即 throw し、それをランタイムに拾わせてアプリケーションを停止させます。
52
+ 質問のコードの内側の catch 内のコードはメチャクチャで議論の対象になるようなものではありません。Exception を catch することがあるとすると、例えば、原因不明の問題が発生していてその調査のためログを取るためぐらいでしょうか。ログを取ったら即 throw し、それをランタイムに拾わせてアプリケーションを停止させます。
53
53
 
54
54
 
55
55
  参考に、.NET アプリの例外処置について Microsoft Bolg に書いてあったことを要約して紹介しておきます(Bolg は今はリンク切れです)。