@@ -32,7 +32,7 @@ A → B → Cと順番にタスクをこなすプログラムがあったとし
3232 // 最後に必ず呼ばれる
3333 }
3434
35- もし、回復処理で回復仕切れない場合は 、再度例外を投げることもできます。
35+ もし、回復処理で回復し切れない場合は 、再度例外を投げることもできます。
3636
3737.. code-block :: ts
3838 :caption: 例外の再送
@@ -174,7 +174,7 @@ JavaScriptの言語の標準に含まれていない、処理系独自の機能
174174
175175 実際に実行時に例外が起きうる(どんなにデバッグしても例外を抑制できない)ポイントは、外部の通信とかごく一部のはずです。あまりたくさん例外処理を書く必要もないと思いますし、書く場合もどこに書いたかがわかりやすくなります。
176176
177- 広くする問題としては、原因の違う例外が混ざってしまう点もあります。例えば、JSONのパースを何箇所かで行なっていると、それぞれの箇所で ``SyntaxError `` が投げられる可能性が出てきます。原因が違ってリカバリー処理が別の例外が同じ ``catch `` 節に入ってきてしまうと
177+ 広くする問題としては、原因の違う例外が混ざってしまう点もあります。例えば、JSONのパースを何箇所かで行なっていると、それぞれの箇所で ``SyntaxError `` が投げられる可能性が出てきます。原因が違ってリカバリー処理が別の例外が同じ ``catch `` 節に入ってきてしまうと、正確に例外を仕分けを行って漏れなく対応する必要が出てきます。しかし、どの例外が投げられるかを明示できる文法がなく、実装のコードを見ないとどのような例外が投げられてくるか分かりません。そのため、「間違いなく対処できているか?」を判断するコストが極めて高くなります。
178178
179179``Error `` 以外を ``throw `` しない
180180~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -369,7 +369,7 @@ Node.jsで ``async`` / ``await`` やら ``Promise`` を一切使っていない
369369
370370これまでTypeScriptにおける例外処理の方法や作法などを説明してきました。しかし、ベースとなっているJaavScriptの制約により、お世辞にも使いやすい機能とは言えません。理由は以下の3つです。
371371
372- * Javaの ``throws `` のように、メソッドがなげうる例外の種類がわからなず 、ソースの関数の実態やドキュメント(整備されていれば)を確認する必要がある
372+ * Javaの ``throws `` のように、メソッドがなげうる例外の種類がわからず 、ソースの関数の実態やドキュメント(整備されていれば)を確認する必要がある
373373* JavaやC++のように、 ``catch `` 節を複数書いて、型ごとの後処理を書くことができず、 ``insteadof `` を駆使してエラーの種類を見分けるコードを書く必要がある
374374* ``Promise `` や ``async`` 関数で、何が ``reejct `` に渡されたり、どんな例外を投げるのかを型定義に書く方法がない
375375
@@ -419,4 +419,4 @@ TypeScriptでも、いくつか方法が考えられます。
419419例外についての文法の説明、組み込みのエラー型、エラー型を自作する方法、非同期処理の例外処理などを説明してきました。
420420例外の設計も、一種のアーキテクチャ設計であるため、ちょっとした経験が必要になるかもしれません。
421421
422- TypeScript、特にフロントエンドの場合、例外を無視することはユーザーの使い勝手を悪くします。どのようなことが発生し、どのケースではどのようにリカバリーするか、というのをあらかじめ決めておくと実装は楽になるでしょう。
422+ TypeScript、特にフロントエンドの場合、例外を無視することはユーザーの使い勝手を悪くします。どのようなことが発生し、どのケースではどのようにリカバリーするか、というのをあらかじめ決めておくと実装は楽になるでしょう。
0 commit comments