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

回答編集履歴

2

typo修正

2018/03/01 07:30

投稿

think49
think49

スコア18194

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  function test () {
7
7
  throw new Error('fooはbarでなければなりません');
8
8
  }
9
- ````
9
+ ```
10
10
 
11
11
  > 例外キャッチか戻り値判定の2択なのですね。
12
12
 

1

try-catch は使用しません

2018/03/01 07:30

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,11 +1,54 @@
1
+ ### throw 文
2
+
1
3
  それがエラーであるなら、エラーメッセージを出力して強制終了させることは可能です。
2
4
 
3
5
  ```JavaScript
4
- function test () {
6
+ function test () {
5
7
  throw new Error('fooはbarでなければなりません');
6
8
  }
7
9
  ````
8
10
 
9
- エラーでないのなら、`return` して終了させるが正しいアプローチだと思います。
11
+ > 例外キャッチか戻り値判定2択なの
10
12
 
13
+ x_x さんが仰るように、try-catch は使用しません。
14
+ throw はエラーをコンソールに出力してその場で即座に強制終了する為の機構です。
15
+ JavaScript には「不正な引数であった場合に強制終了する仕組み」があります。
16
+
17
+ ```JavaScript
18
+ (2).toString(-1); // RangeError: toString() radix argument must be between 2 and 36
19
+ ```
20
+
21
+ ### return 文
22
+
23
+ エラーでないのなら、返り値から判断して `return` 文で終了させるか、
24
+
25
+ ```JavaScript
26
+ (function () {
27
+ console.log("sample");
28
+
29
+ var resutl = test();
30
+
31
+ if (!result) {
32
+ return;
33
+ }
34
+
35
+ console.log("sample2");
36
+ }());
37
+ ```
38
+
39
+ 返り値から後述コードを条件付き実行にするのが正しいアプローチだと思います。
40
+
41
+
42
+ ```JavaScript
43
+ (function () {
44
+ console.log("sample");
45
+
46
+ var resutl = test();
47
+
48
+ if (result) {
49
+ console.log("sample2");
50
+ }
51
+ }());
52
+ ```
53
+
11
54
  Re: deep さん