質問するログイン新規登録

回答編集履歴

1

追加

2020/07/30 04:26

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -1,6 +1,40 @@
1
1
  例外機構がない場合、返り値で処理の成功を判断することになります。確かにそういう考えの言語はあります、c言語とか。
2
2
 
3
3
  そういう言語で例えば、
4
- 「処理A,B,C,Dを順番に行う、ただし各処理が失敗した時点で以降の処理は実行しない
4
+ 「処理A,B,C,Dを順番に行う、ただし各処理が失敗した時点で以降の処理は実行せず代わりにEを行う
5
- という処理を書こうとしたらif文が4つ並んでしまいますが、
5
+ という処理を書こうとしたらif文が4つ並んでしまいます;
6
+ ```
7
+ if(!A()){
8
+ E();
9
+ return;
10
+ }
11
+
12
+ if(!B()){
13
+ E();
14
+ return;
15
+ }
16
+
17
+ if(!C()){
18
+ E();
19
+ return;
20
+ }
21
+
22
+ if(!D()){
23
+ E();
24
+ return;
25
+ }
26
+ ```
27
+
28
+ 他にも色々書き方はあるでしょうが、少なくとも「A,B,C,Dの順番で実行する」という本題からかなり余計なコードが増えることでしょう。
29
+
6
- 例外機構があればtry-catchですっきり書けます
30
+ これが例外機構があればtry-catchですっきり書けます
31
+ ```
32
+ try {
33
+ A();
34
+ B();
35
+ C();
36
+ D();
37
+ } catch {
38
+ E();
39
+ }
40
+ ```