回答編集履歴

1

修正

2017/07/08 18:23

投稿

退会済みユーザー
test CHANGED
@@ -6,21 +6,33 @@
6
6
 
7
7
  begin
8
8
 
9
- 1 / 0
9
+ raise ArgumentError, "ハローワールド"
10
10
 
11
11
  rescue => e
12
12
 
13
- case e.class
13
+ e_class_name = e.class
14
14
 
15
- when ArgumentError
15
+
16
16
 
17
+ word =
18
+
19
+ if e_class_name == ZeroDivisionError
20
+
17
- p 'Hello'
21
+ "不正な計算です。"
22
+
23
+ elsif e_class_name == ArgumentError
24
+
25
+ e.message
18
26
 
19
27
  else
20
28
 
21
- p 'よく分からないエラーです。'
29
+ "よく分からないエラーです。"
22
30
 
23
31
  end
32
+
33
+
34
+
35
+ puts word
24
36
 
25
37
  end
26
38
 
@@ -30,4 +42,18 @@
30
42
 
31
43
  参考
32
44
 
45
+ [rubyの例外についてまとめてみた](http://qiita.com/kasei-san/items/75ad2bb384fdb7e05941)
46
+
33
47
  [Rubyの例外処理(begin - rescueとraise)をもう一度きちんと確認してみた。](http://qiita.com/murata0705/items/6ae346bd04197fb2e36a)
48
+
49
+
50
+
51
+ エラーのクラスを見てwhenで処理を分岐させるという方法を考えました。
52
+
53
+
54
+
55
+ 追記
56
+
57
+ whenではうまくいかなかったのでifで分岐させることにしました。
58
+
59
+