JavaScript エラー処理 try..catch...finally + は throw+TypeError+RangeError をカバーします

JavaScript エラー処理 try..catch...finally + は throw+TypeError+RangeError をカバーします

1. 目的

通常、エラーが発生すると、スクリプトは直ちに停止し、コンソールにエラーを出力します。

このステートメントを使用すると、エラーをキャッチして適切な操作を実行し、プログラムの実行を継続できます。

2. 文法

試す {
  // コード...
} キャッチ (エラー) {
   //err はエラーに関する詳細情報を持つオブジェクトです // エラー キャプチャ。上記のコードはエラーが報告されるとこのコード ブロックに移動し、実行を停止しません} finally {
   //例外がスローされたかキャッチされたかに関係なく、常に実行されます}

この文はネストできる

3. 練習する

Catchすべてのerrorをキャッチします。

処理方法がわからない場合は、 throw err

throw演算子はerrorオブジェクトを生成します。

ユーザー定義の例外をスローするために使用されます。現在の関数の実行は停止され (throw の後のステートメントは実行されません)、制御は呼び出しスタックの最初の Catch ブロックに渡されます。呼び出し元関数に catch ブロックがない場合、プログラムは終了します。

例:

throw "Error1"; // 文字列値を持つ例外をスローします throw 4; // 整数値 4 を持つ例外をスローします /*JavaScript には、Error、SyntaxError、ReferenceError、TypeError など、多くの組み込みの標準エラー コンストラクターがあります。これらを使用してエラー オブジェクトを作成することもできます。 */
let error = new Error("いろいろなことが起こります o_O");
alert(error.name); // エラー
alert(error.message); // いろいろなことが起こります o_O
//json例外を試す{
  JSON.parse("{ 不正なJSON o_O }");
} キャッチ(e) {
  alert(e.name); // 構文エラー
  alert(e.message); // JSON の位置 2 に予期しないトークン b があります
}

補充:

try ブロック内のコードは、 TypeErrorRangeErrorSyntaxError 3 種類の例外をスローする可能性があります。

これら 3 つの意味を知らない生徒もいるかもしれないので、ここで説明しておきます。

これらは両方ともグローバル オブジェクトです。グローバル オブジェクト自体にはメソッドは含まれていませんが、プロトタイプ チェーンを通じていくつかのメソッドを継承します。

エラーの種類を判別するには、instanceof 演算子を使用します。

  • TypeError : (型エラー) 値の型が期待される型でない場合に発生するエラーを表すために使用されるオブジェクト
  • RangeError : オブジェクトは、値が許容範囲または設定内にない場合にエラーを示します。
  • SyntaxError : Javascript言語がコードを解析するとき、Javascriptエンジンは文法仕様に準拠していないトークンまたはトークンシーケンスを見つけ、

例:

catch (e){//以下はこのオブジェクトのパラメータプロパティです console.log(e instanceof TypeError); // true
  console.log(e.message); // "このエラーについて説明してください"
  console.log(e.name); // "TypeError"
  console.log(e.fileName); // "例外の原因となったコードが配置されているファイルの名前"
  console.log(e.lineNumber); // 例外を引き起こしたコードの行番号}

これで、JavaScript エラー処理 try..catch...finally と throw+TypeError+RangeError のカバーに関する記事は終了です。JavaScript エラー処理に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • よくあるJSエラーと解決策の詳細な説明
  • javascript エラーオブジェクトのエラー処理

<<:  SSH ポート転送とは何ですか?何の役に立つの?

>>:  CSSは高さを設定せずにdivを完全に中央に配置することを実現します

推薦する

JSON.parse と JSON.stringify の使い方の詳細な説明

目次JSON.パースJSON.parse 構文リバイバーパラメータJSON.parse の機能その他...

Mac ノードの削除と再インストールのケーススタディ

Macノードの削除と再インストール消去 ノード -v sudo npm アンインストール npm -...

小規模プロジェクトで Vue が点滅するのを防ぐ方法

まとめHTML: 要素と v-cloak CSS: [v-cloak]{表示: なし}プロセスページ...

Raspberry Pi 3B+ に 64 ビット Ubuntu システムと Docker ツールをインストールする詳細な手順

Raspberry Pi 3B に 64 ビット アプリケーション (64 ビット JDK など) ...

Vue画像拡大鏡コンポーネントのカプセル化と使用方法の詳細な説明

Vue画像拡大鏡コンポーネントパッケージに基づいて、参考までに具体的な内容は次のとおりです。画像拡大...

Vue プロジェクトに Electron を追加するための詳細なコード

1. package.jsonに追加する "メイン": "electr...

MySQLのint主キーの自己増分の問題を解決する

導入MySQL データベースを使用する場合、int を主キーとして使用し、自動インクリメントに設定す...

MySQLインデックスを追加する3つの原則を簡単に理解する

1. インデックスの重要性インデックスは、列に特定の値を持つ行をすばやく見つけるために使用されます。...

DHTML オブジェクト (さまざまな HTML オブジェクトの共通プロパティ)

!DOCTYPE HTML ドキュメントが準拠するドキュメント型定義 (DTD) を指定します。 ...

CentOs システムで Python と yum をアンインストールするソリューション

事故の背景: 数日前、プロジェクトの必要性により、サーバーに python-mysql モジュールを...

Linuxはlsof/extundeleteツールを使用して、誤って削除されたファイルやディレクトリを復元します。

序文Linux には Windows のような目立つごみ箱がないため、簡単に復元することはできません...

href をクリックした後にページがジャンプしないようにするための空のリンクの正しい書き方 # 問題

リンクを使用する必要がある場合もありますが、リンクする必要はありません。onclick イベントを処...

MySQL 8.0 の降順インデックス

序文インデックスが順序付けられていることは誰もが知っていると思いますが、MySQL の以前のバージョ...

MySQLテーブル名の大文字と小文字を区別しない設定方法の詳細な説明

デフォルトでは、Linux の MySQL はテーブル名の大文字と小文字を区別します。 MySQL ...

HTML で余分なテキストを省略記号に変換する方法

HTML で余分なテキストを省略記号として表示したい場合は、いくつかの方法があります。 1行テキスト...