質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

1回答

408閲覧

Typescriptにおけるエラーハンドリングについて

hinohara

総合スコア4

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

1クリップ

投稿2023/01/15 12:21

編集2023/01/15 12:23

かなり基本的な内容かと思いますが、よく分からないので質問させてください。。

JavaScriptでは、同期処理の場合でも型エラーなどがあり得るので、try catchでエラーハンドリングをするかと思います。

けれど、Typescriptにおいては型を静的に解析してくれるので、基本的に非同期処理以外でエラーハンドリングをする必要はないと思っていますが、この認識は間違っていますでしょうか、、?

もちろん、独自のエラーを定義したいという場合もあるかと思いますが、今回そのケースは無視してください。

また、非同期処理においてもどのようなエラーハンドリングをすれば良いのか正直よく分かっておりません。

ログを出して、そのログを元にデバッグをするということ以外にctachの処理でやるべきことはありますでしょうか?

初歩的な質問で申し訳ございませんが、ご回答の方お願いいたします。

エラーハンドリングについて学べるリソースなどもありましたらぜひ教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

JavaScriptでは、同期処理の場合でも型エラーなどがあり得るので、try catchでエラーハンドリングをするかと思います。

この前提がおかしいです。try-catchによるエラー検出は、型エラーのようなバグを潰すために使うものではありません。

ということで、JavaScriptとTypeScriptでtry-catchの必要性が変わることもありません。

投稿2023/01/15 13:10

maisumakun

総合スコア145192

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2023/01/15 13:16

ブラウザによって異なる機能の検証のため、機能がないブラウザでエラーが致命的とならないようにtry-catchで後始末する、というような用法もあります。
hinohara

2023/01/16 05:21 編集

ご回答ありがとうございます! > この前提がおかしいです。try-catchによるエラー検出は、型エラーのようなバグを潰すために使うものではありません。 そもそもtry-catchはfetchなどで例外を処理すための機能という解釈で合ってますでしょうか?? つまり一般的な同期処理でtry-catchを使うことは基本的にないという認識も合ってますか、、?
maisumakun

2023/01/16 05:36 編集

> そもそもtry-catchはfetchなどで例外を処理すための機能という解釈で合ってますでしょうか?? 全く違います。try-catchは、基本的には同期的に動作します。 awaitを使わずにfetchを呼んだ場合、Promiseがrejectされますので、通常の同期的な処理フローになるtry-catchには流れません。await fetchで失敗したときはtry-catchで回収可能です。 > つまり一般的な同期処理でtry-catchを使うことは基本的にないという認識も合ってますか そんなことはありません。たとえば、JSON.parseにJSONとして正しくない値を渡した場合、同期的に例外を投げます。
hinohara

2023/01/16 07:05 編集

すみません、イマイチ理解が追いついてないです。。 エラーハンドリングのそもそもの目的が分かっていないのですが、そういったものを学べるサイトなどはありますでしょうか?? > そんなことはありません。たとえば、JSON.parseにJSONとして正しくない値を渡した場合、同期的に例外を投げます。 例えばこういった場合に例外を投げる理由は、アプリが強制終了されるのを防ぐためでしょうか?
maisumakun

2023/01/16 07:38

> 例えばこういった場合に例外を投げる理由は、アプリが強制終了されるのを防ぐためでしょうか? それがメインではありません。失敗したということを「何らかの方法」(それも、ハンドリングが抜けても問題とならない、あるいは抜けが生じづらいような方法)で伝えないといけないので、ここでは例外を使っている、ということです。
hinohara

2023/01/16 11:21

長々とお付き合いいただきありがとうございました。 少し自分で調べてみます🙇‍♂️
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問