ホームページ ウェブフロントエンド jsチュートリアル JavaScript の例外と例外処理メカニズム

JavaScript の例外と例外処理メカニズム

Jun 15, 2023 pm 09:31 PM
javascript 例外処理 異常な

JavaScript は、Web ページのマークアップやスクリプト プログラミングによく使用される言語です。他のプログラミング言語と同様、JavaScript にも例外と例外処理メカニズムが含まれています。この記事では、読者が JavaScript プログラムの例外をより深く理解し、それに対応できるように、JavaScript の例外と例外処理メカニズムを紹介します。

1. JavaScript の例外

JavaScript では、例外とは、プログラムの実行中に発生したエラーまたは異常な状況を指します。これらの例外は、ブラウザ、環境、またはプログラム自体に起因する可能性があり、一般的な例外には、構文エラー、実行時エラー、型エラー、ネットワーク エラーなどが含まれます。

  1. 構文エラー

構文エラーは、プログラムに構文エラーがあり、正しく解析および実行できないことを意味します。たとえば、キーワードのスペルが間違っている、括弧が欠落している、セミコロンが欠落しているなどです。

次に、構文エラーの例を示します。

var number = 10
if (number > 5) {
  console.log("Number is greater than 5.")
}
ログイン後にコピー

コードの最初の行にセミコロンがないため、プログラムは正しく解析できません。

  1. 実行時エラー

実行時エラーとは、プログラムの実行中に処理できないエラーまたは例外が発生したことを意味します。たとえば、変数の型が間違っている、未定義の変数がアクセスされている、配列が範囲外であるなどです。

以下は実行時エラーの例です:

var numbers = [1, 2, 3, 4]
console.log(numbers[10])
ログイン後にコピー

コードでは、プログラムは配列内のインデックス 10 の要素を出力しようとしていますが、実際には配列の長さは4 だけなので、範囲外の例外がスローされます。

  1. 型エラー

型エラーとは、数値変数に文字列を代入したり、数値変数を渡したりするなど、プログラムが互換性のない型の変数を操作または代入しようとしたことを意味します。数値変数 文字列などを必要とする関数の場合

次は型エラーの例です:

var number = 10
console.log("Number is " + number)
ログイン後にコピー

コードの 2 行目では、文字列と数値が連結されており、型に互換性がないため、型エラーが発生します。

  1. ネットワーク エラー

ネットワーク エラーとは、プログラムがリモート リソースを取得するとき、またはサーバーと通信するときに発生するエラーまたは例外を指します。たとえば、ネットワーク接続がタイムアウトする、サーバーに接続できないなどです。

次はネットワーク エラーの例です:

var request = new XMLHttpRequest()
request.open("GET", "https://api.example.com/data.json", true)
request.send()
ログイン後にコピー

コードでは、プログラムは XMLHttpRequest オブジェクトを通じて api.example.com の下にある data.json ファイルを取得しようとしますが、サーバーが応答できない、または接続できない タイムアウトによりネットワーク エラーが発生します。

2. JavaScript 例外処理メカニズム

JavaScript は、プログラマーが例外をキャッチして処理できるようにする例外処理メカニズムを提供します。例外処理メカニズムには、try-catch-finally ステートメント ブロックと throw ステートメントが含まれます。

  1. try-catch-finally ステートメント ブロック

try-catch-finally ステートメント ブロックは、例外をキャッチして処理するために使用されます。構文は次のとおりです。

try {
  // 可能会引发异常的代码
}
catch (e) {
  // 处理异常的代码
}
finally {
  // finally代码块(可选)
}
ログイン後にコピー

try コード ブロック内に、プログラマは例外を引き起こす可能性のあるコード セグメントを配置できます。コードセグメントが正常に実行される場合、キャッチコードブロックはスキップされます。コードセグメントの実行中に例外が発生した場合、キャッチコードブロックにジャンプして例外処理を実行します。

キャッチ コード ブロックは、キャッチされた例外を表すパラメータ e を受け入れます。 catch コード ブロックでは、プログラマは例外情報の出力、エラー レポートのサーバーへの送信などの例外処理ロジックを定義できます。

finally コード ブロックは通常、ファイルを閉じる、リソースを解放するなどのクリーンアップ操作を処理するために使用されます。try コード ブロックが正常に実行されたか例外が発生したかに関係なく、finally コード ブロック内のコードは実行されます。

次は、try-catch-finally ステートメント ブロックの例です:

var divisor = 0
try {
  var result = 10 / divisor
  console.log("Result is " + result)
}
catch (e) {
  console.log("Exception: " + e.message)
}
finally {
  console.log("Finally block executed.")
}
ログイン後にコピー

コードでは、プログラムは 10 を変数除数で除算しようとします。除数は 0 であるため、例外がスローされます。プログラムの実行シーケンスはキャッチコードブロックにジャンプし、例外メッセージ「例外: ゼロ除算。」が出力されます。最後に、finally コード ブロック内のクリーンアップ操作が実行され、「Finally block が実行されました。」というステートメントが出力されます。

  1. throw ステートメント

throw ステートメントは、手動で例外を発生させ、例外オブジェクトを例外処理メカニズムに渡すために使用されます。構文は次のとおりです。

throw expression;
ログイン後にコピー

expression は、スローされる例外オブジェクトを表します。文字列、数値、オブジェクトなどを指定できます。プログラムでは、通常、throw ステートメントは入力パラメータの検証、プログラムのステータスの検出などに使用されます。

以下は throw ステートメントの例です:

var age = -1
try {
  if (age < 0) {
    throw "Age is invalid."
  }
  else {
    console.log("Age is " + age)
  }
}
catch (e) {
  console.log("Exception: " + e)
}
finally {
  console.log("Finally block executed.")
}
ログイン後にコピー

コードでは、変数 age が 0 未満の場合、プログラムは手動で文字列例外「年齢が無効です」を発生させます。そして、catch コード ブロックの例外の処理にジャンプします。

3. 概要

JavaScript の例外と例外処理メカニズムは、高品質のプログラムを作成するための鍵です。 JavaScript プログラムを作成する場合、プログラマは起こり得る例外を十分に考慮し、例外処理メカニズムを使用してプログラムの正確さと安定性を確保する必要があります。実際には、プログラマは try-catch-finally ステートメント ブロックと throw ステートメントを使用して、例外をキャッチして処理し、プログラムの通常の実行を保護できます。

以上がJavaScript の例外と例外処理メカニズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++ 関数の例外とマルチスレッド: 同時環境でのエラー処理 C++ 関数の例外とマルチスレッド: 同時環境でのエラー処理 May 04, 2024 pm 04:42 PM

C++ での関数例外処理は、マルチスレッド環境でスレッドの安全性とデータの整合性を確保するために特に重要です。 try-catch ステートメントを使用すると、特定の種類の例外が発生したときにそれをキャッチして処理し、プログラムのクラッシュやデータの破損を防ぐことができます。

MIT の最新傑作: GPT-3.5 を使用して時系列異常検出の問題を解決する MIT の最新傑作: GPT-3.5 を使用して時系列異常検出の問題を解決する Jun 08, 2024 pm 06:09 PM

今日は、MIT が先週公開した記事を紹介します。GPT-3.5-turbo を使用して時系列異常検出の問題を解決し、時系列異常検出における LLM の有効性を最初に検証しました。プロセス全体に微調整はなく、GPT-3.5-turbo は異常検出に直接使用されます。この記事の核心は、時系列を GPT-3.5-turbo が認識できる入力に変換する方法とその設計方法です。 LLM が異常検出タスクを解決できるようにするためのプロンプトまたはパイプライン。この作品について詳しく紹介していきます。画像用紙タイトル:Large languagemodelscanbeゼロショタノマリデテ

C++ 例外処理はカスタム エラー処理ルーチンをどのようにサポートしますか? C++ 例外処理はカスタム エラー処理ルーチンをどのようにサポートしますか? Jun 05, 2024 pm 12:13 PM

C++ 例外処理を使用すると、例外をスローし、try-catch ブロックを使用して例外をキャッチすることで実行時エラーを処理するカスタム エラー処理ルーチンを作成できます。 1. 例外クラスから派生したカスタム例外クラスを作成し、what() メソッドをオーバーライドします。 2. throw キーワードを使用して例外をスローし、例外のタイプを指定します。扱った。

C++ でネストされた例外処理を実装するにはどうすればよいですか? C++ でネストされた例外処理を実装するにはどうすればよいですか? Jun 05, 2024 pm 09:15 PM

ネストされた例外処理は、ネストされた try-catch ブロックを通じて C++ に実装され、例外ハンドラー内で新しい例外を発生させることができます。ネストされた try-catch ステップは次のとおりです。 1. 外側の try-catch ブロックは、内側の例外ハンドラーによってスローされた例外を含むすべての例外を処理します。 2. 内部の try-catch ブロックは特定のタイプの例外を処理し、スコープ外の例外が発生した場合、制御は外部例外ハンドラーに渡されます。

Java 関数の再帰呼び出しと例外処理の間にはどのような関係がありますか? Java 関数の再帰呼び出しと例外処理の間にはどのような関係がありますか? May 03, 2024 pm 06:12 PM

再帰呼び出しでの例外処理: 再帰の深さの制限: スタック オーバーフローの防止。例外処理を使用する: try-catch ステートメントを使用して例外を処理します。末尾再帰の最適化: スタックのオーバーフローを回避します。

C++ テクノロジにおける例外処理: マルチスレッド環境で例外を正しく処理するにはどうすればよいですか? C++ テクノロジにおける例外処理: マルチスレッド環境で例外を正しく処理するにはどうすればよいですか? May 09, 2024 pm 12:36 PM

マルチスレッド C++ では、例外処理は適時性、スレッドの安全性、明確性という原則に従います。実際には、ミューテックスまたはアトミック変数を使用することで、例外処理コードのスレッド セーフを確保できます。さらに、例外処理コードの再入性、パフォーマンス、テストを考慮して、コードがマルチスレッド環境で安全かつ効率的に実行されることを確認してください。

C++ ラムダ式で例外を処理するにはどうすればよいですか? C++ ラムダ式で例外を処理するにはどうすればよいですか? Jun 03, 2024 pm 03:01 PM

C++ ラムダ式の例外処理には独自のスコープがなく、デフォルトでは例外はキャッチされません。例外をキャッチするには、ラムダ式キャッチ構文を使用できます。これにより、ラムダ式がその定義スコープ内の変数をキャプチャできるようになり、try-catch ブロックで例外処理が可能になります。

PHP 例外処理: 例外追跡を通じてシステムの動作を理解する PHP 例外処理: 例外追跡を通じてシステムの動作を理解する Jun 05, 2024 pm 07:57 PM

PHP 例外処理: 例外追跡を通じてシステムの動作を理解する 例外は、PHP がエラーを処理するために使用するメカニズムであり、例外は例外ハンドラーによって処理されます。例外クラス Exception は一般的な例外を表し、Throwable クラスはすべての例外を表します。 throw キーワードを使用して例外をスローし、try...catch ステートメントを使用して例外ハンドラーを定義します。実際のケースでは、例外処理を使用して、calculate() 関数によってスローされる DivisionByZeroError をキャプチャして処理し、エラー発生時にアプリケーションが適切に失敗できるようにします。

See all articles