回答編集履歴

5

ソースミス修正

2016/08/09 05:24

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  Catch ex As SqlException
64
64
 
65
- , ex.Numberで一番最初のエラーコードが取れる(SqlExceptionの場合)
65
+ ' ex.Numberで一番最初のエラーコードが取れる(SqlExceptionの場合)
66
66
 
67
67
  MessageBox.Show("データベース関連エラー発生。", "エラーが発生しました", MessageBoxButtons.OK, MessageBoxIcon.Error)
68
68
 

4

ソースくくり

2016/08/09 05:24

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -46,6 +46,8 @@
46
46
 
47
47
 
48
48
 
49
+ ```VB.NET
50
+
49
51
  Try
50
52
 
51
53
  '●更新実行
@@ -88,6 +90,6 @@
88
90
 
89
91
  End Try
90
92
 
91
-
93
+ ```
92
94
 
93
95
 

3

コード追記

2016/08/09 05:23

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -37,3 +37,57 @@
37
37
  特定の例外(SqlExceptionなど)を取り扱うCatch節を一つ追加し、
38
38
 
39
39
  固有処理を行うようにしてあげると良いでしょう。
40
+
41
+
42
+
43
+ ###追記
44
+
45
+ 一応簡単に例示しときます
46
+
47
+
48
+
49
+ Try
50
+
51
+ '●更新実行
52
+
53
+ Cn.Open()
54
+
55
+ SQLCm.CommandText = SQL
56
+
57
+ SQLCm.ExecuteNonQuery()
58
+
59
+
60
+
61
+ Catch ex As SqlException
62
+
63
+ , ex.Numberで一番最初のエラーコードが取れる(SqlExceptionの場合)
64
+
65
+ MessageBox.Show("データベース関連エラー発生。", "エラーが発生しました", MessageBoxButtons.OK, MessageBoxIcon.Error)
66
+
67
+
68
+
69
+ Catch ex As Exception
70
+
71
+ MessageBox.Show("その他のエラーが発生。", "エラーが発生しました", MessageBoxButtons.OK, MessageBoxIcon.Error)
72
+
73
+
74
+
75
+ Finally
76
+
77
+ Try
78
+
79
+ ' エラーがある場合でもDB切断は必ず行う
80
+
81
+ Cn.Close()
82
+
83
+ Catch ex As Exception
84
+
85
+ ' DB切断もこけよった場合……
86
+
87
+ End Try
88
+
89
+ End Try
90
+
91
+
92
+
93
+

2

誤字修正

2016/08/09 05:21

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  また、質問者さんはSQL構文誤りのある場合のみ例外としたいということですが、
22
22
 
23
- - 実行したSQLが指定した応答待機時間を超えタイムアウトした**
23
+ - 実行したSQLが指定した応答待機時間を超えタイムアウトした
24
24
 
25
25
  - SQL実行時DB接続がクローズしていた
26
26
 

1

追記

2016/08/09 03:34

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- そのため、**例外がスローされた時点**ではどういう原因でのエラーかの判断が出来ません。
9
+ そのため、**例外がスローされた時点**ではどういう原因でのエラーかの判断が出来ません。
10
10
 
11
11
 
12
12
 
@@ -20,8 +20,20 @@
20
20
 
21
21
  また、質問者さんはSQL構文誤りのある場合のみ例外としたいということですが、
22
22
 
23
- 例えば**実行したSQLが指定した応答待機時間を超えタイムアウト**したとか、**SQL実行時DB接続がクローズしていた**など、
23
+ - 実行したSQLが指定した応答待機時間を超えタイムアウトした**
24
24
 
25
- これらのケスも**例外として適切に取り扱う必要がある**め、
25
+ - SQL実行時DB接続がクロして
26
26
 
27
+
28
+
29
+ 上記のようなケースも**例外として適切に取り扱う必要がある**ため、
30
+
27
- これCatchされること自体は問題ではないと思います。
31
+ これらがCatchされること自体は問題ではないと思います。
32
+
33
+
34
+
35
+ 強いて言うならデータベース絡みのエラーを明示的に扱う意味で、
36
+
37
+ 特定の例外(SqlExceptionなど)を取り扱うCatch節を一つ追加し、
38
+
39
+ 固有処理を行うようにしてあげると良いでしょう。