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を完全に中央に配置することを実現します

推薦する

Vue3はフロントエンドのログを出力するためにaxiosインターセプターを使用する

目次1. はじめに2. axiosインターセプターを使用してフロントエンドログを出力する1. はじめ...

ウェブページコンテンツの閲覧設計手法に関する議論

<br />コンテンツ ページの記事の場合、記事が長すぎる場合やカテゴリ (ランキング)...

虫眼鏡の詳細のJavaScript実装

目次1. レンダリング2. 実施原則3. まとめ1. レンダリング 2. 実施原則幅と高さが等しい拡...

HTML の div、td、p およびその他のコンテナーでの強制改行と非改行の実装

1. 改行を強制せず、省略記号で終了します。コードをコピーコードは次のとおりです。 <div ...

史上最もシンプルな MySQL データのバックアップと復元のチュートリアル (パート 2) (パート 36)

データのバックアップと復元パート2は次のとおりです基本的な概念:バックアップ、現在のデータまたはレコ...

レンダリング関数と JSX の詳細

目次1. 基本2. ノード、ツリー、仮想DOM 1. 仮想DOM 3. createElementパ...

CSS を解析して画像のテーマカラー機能を抽出する (ヒント)

背景すべては、WeChat 技術グループのクラスメートが「写真の主な色を取得する方法はあるか」と尋ね...

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

Vueログイン機能の実装

目次前面に書かれたログインの概要ログインビジネスプロセスログインサービスの関連技術ポイントログイント...

Vue要素はテーブルの追加、削除、データの変更を実装します

この記事では、テーブル内のデータを追加、削除、変更するためのvue要素の具体的なコードを参考までに共...

Dockerでイメージ情報を表示する方法

この記事では、Dockerでイメージ情報を表示する方法を学ぶ必要があります。 1. imagesコマ...

DockerでSpring Bootアプリケーションを実行する方法

ここ数日、dockerでSpring Bootアプリケーションを実行する方法を勉強してきました。以前...

Mac で MySQL 8.0.22 のパスワードを取得する方法

Mac 最新バージョンの MySQL 8.0.22 パスワード回復問題の説明:昨日、突然、Macで最...

Dockerリポジトリの一般的なコマンドの詳細な説明

ログイン dockerログインdocker login コマンドを実行し、ユーザー名、パスワード、メ...

MySQLは1億のテストデータを素早く挿入します

目次1. テーブルを作成する1.1 テストテーブルt_userを作成する1.2 一時テーブルの作成2...