回答編集履歴

3

期待通りに動作しない try 文のコードを削除

2018/09/16 14:03

投稿

think49
think49

スコア18166

test CHANGED
@@ -34,35 +34,9 @@
34
34
 
35
35
 
36
36
 
37
- ```JavaScript
37
+ **(2018/09/16 23:03 編集)**
38
38
 
39
- new Promise((resolve, reject) => {
40
-
41
- try {
42
-
43
- setTimeout(() => {
44
-
45
- throw new Error("例外テスト");
46
-
47
- }, 100);
48
-
49
- } catch (error) {
50
-
51
- throw error;
52
-
53
- }
54
-
55
- }).catch(error => {
56
-
57
- console.log(error);
58
-
59
- });
60
-
61
- ```
62
-
63
-
64
-
65
- `setTimeout()` のコールバック関数内 `try-catch` を使う方法もあります。
39
+ 当初、try のコードを2つ記載していましたが、一つは期待通りの動作はない事が発覚した為、削除しました(R.Mizukamiさん、ご指摘ありがとうございます)
66
40
 
67
41
 
68
42
 
@@ -94,7 +68,7 @@
94
68
 
95
69
 
96
70
 
97
- いずれにても、自身で `throw` したエラーを `catch` するのは回りくどく、筋が良いとはいえません。
71
+ かし、自身で `throw` したエラーを `catch` するのは回りくどく、筋が良いとはいえません。
98
72
 
99
73
  強制終了を意図しているのなら、`return` 文が適切でしょう。
100
74
 

2

try 文(2nd)

2018/09/16 14:03

投稿

think49
think49

スコア18166

test CHANGED
@@ -62,6 +62,52 @@
62
62
 
63
63
 
64
64
 
65
+ `setTimeout()` のコールバック関数内で `try-catch` を使う方法もあります。
66
+
67
+
68
+
69
+ ```JavaScript
70
+
71
+ new Promise((resolve, reject) => {
72
+
73
+ setTimeout(() => {
74
+
75
+ try {
76
+
77
+ throw new Error("例外テスト");
78
+
79
+ } catch (error) {
80
+
81
+ reject(error);
82
+
83
+ }
84
+
85
+ }, 100);
86
+
87
+ }).catch(error => {
88
+
89
+ console.log(error);
90
+
91
+ });
92
+
93
+ ```
94
+
95
+
96
+
97
+ いずれにしても、自身で `throw` したエラーを `catch` するのは回りくどく、筋が良いとはいえません。
98
+
99
+ 強制終了を意図しているのなら、`return` 文が適切でしょう。
100
+
101
+
102
+
103
+ ```JavaScript
104
+
105
+ return reject(new Error);
106
+
107
+ ```
108
+
109
+
110
+
65
111
  ### await 式
66
112
 
67
113
 

1

try 文

2018/09/16 06:41

投稿

think49
think49

スコア18166

test CHANGED
@@ -1,4 +1,4 @@
1
- ### Promise
1
+ ### reject
2
2
 
3
3
 
4
4
 
@@ -26,7 +26,43 @@
26
26
 
27
27
 
28
28
 
29
+ ### try 文
30
+
31
+
32
+
33
+ reject と比較して無駄が多いので、お勧めはしません。
34
+
35
+
36
+
37
+ ```JavaScript
38
+
39
+ new Promise((resolve, reject) => {
40
+
41
+ try {
42
+
43
+ setTimeout(() => {
44
+
45
+ throw new Error("例外テスト");
46
+
47
+ }, 100);
48
+
49
+ } catch (error) {
50
+
51
+ throw error;
52
+
53
+ }
54
+
55
+ }).catch(error => {
56
+
57
+ console.log(error);
58
+
59
+ });
60
+
61
+ ```
62
+
63
+
64
+
29
- ### await
65
+ ### await
30
66
 
31
67
 
32
68