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

PHPz
リリース: 2023-06-15 21:31:22
オリジナル
1889 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート