回答編集履歴

1

追記

2017/09/15 07:57

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,71 @@
1
1
  throw new Exception(); というコードを例外を発生させたい行に入れれば「例外を意図的に発生」はできると思うのですが、そういうことではない?
2
+
3
+
4
+
5
+ 【追記】
6
+
7
+
8
+
9
+ コメント欄に、
10
+
11
+
12
+
13
+ > 例外処置の基本として「業務エラー」と「例外」分けて処理するというのがあります。今回の話は「業務エラー」として処置する話ではないかと思います。詳しくはコメント欄に書ききれませんので、回答欄に追記しておきます。
14
+
15
+
16
+
17
+ と書きましたが、それを以下に書いておきます。
18
+
19
+
20
+
21
+ 例外処置について、自分的に一般的に行うべきなのは以下の通りと思っています:
22
+
23
+
24
+
25
+ (1) 予測可能で正しい業務フローに戻すことができる「業務エラー」(例:ユーザーの入力間違い)と、予測できないもしくは予測はできても何の対応もできない「例外」(例:DB サーバーダウン)を区別して対処。
26
+
27
+
28
+
29
+ (2) 「例外」はランタイムに拾わせてアプリケーションを停止させる。
30
+
31
+
32
+
33
+ (3) よほどのことがない限り try-catch は書かない。
34
+
35
+
36
+
37
+ (4) キャッチせざるを得ない場合でも Excption はキャッチしない。
38
+
39
+
40
+
41
+ (5) 間違って補足してしまった例外は throw する。(注:catch ブロックでキャッチした例外を throw するとスタックトレースが途切れるので単に throw と書く)
42
+
43
+
44
+
45
+ (6) ユーザーへの通知が必要なら、集約的例外処置を利用する。
46
+
47
+
48
+
49
+ 詳しくは以下の記事を見てください。
50
+
51
+
52
+
53
+ NETの例外処理 Part.1
54
+
55
+ [https://blogs.msdn.microsoft.com/nakama/2008/12/29/net-part-1/](https://blogs.msdn.microsoft.com/nakama/2008/12/29/net-part-1/)
56
+
57
+
58
+
59
+ .NETの例外処理 Part.2
60
+
61
+ [https://blogs.msdn.microsoft.com/nakama/2009/01/02/net-part-2/](https://blogs.msdn.microsoft.com/nakama/2009/01/02/net-part-2/)
62
+
63
+
64
+
65
+ あと、.NET 4 からは破損状態例外は catch できなくなっているそうですが、「それでも Catch (Exception e) を使用するのはよくない」ということについては以下の記事を見てください。
66
+
67
+
68
+
69
+ 破損状態例外を処理する
70
+
71
+ [https://msdn.microsoft.com/ja-jp/magazine/dd419661.aspx](https://msdn.microsoft.com/ja-jp/magazine/dd419661.aspx)