序文Javascript エンジンはシングルスレッドなので、例外が発生すると、Javascript エンジンは通常、実行を停止し、後続のコードをブロックして例外メッセージをスローします。したがって、予測可能な例外については、それらをキャプチャして、ユーザーまたは開発者に正しく表示する必要があります。 エラーオブジェクト実行時エラーが発生すると、Error のインスタンスがスローされます。 エラー オブジェクトには 2 つのプロパティがあります。
エラーの作成
エラー タイプ js では、次の 7 つのエラー タイプが定義されています。
投げるJavaScript コードの中には、構文エラーがないのに論理エラーがあるものもあります。このようなエラーの場合、JavaScript は例外をスローしません。このとき、エラー オブジェクトのインスタンスを自分で定義し、throw ステートメントを使用して積極的に例外をスローすることができます。プログラムでは、throw ステートメントを使用して意図的に例外をスローすることができます。その構文は次のとおりです。
試して…捕まえて…最後に
try ステートメントには 3 つの形式があります。
最終ルールfinally ブロックで例外がスローされると、try ブロック内の例外が上書きされます。 試す { 試す { 新しいエラーをスローします('it1が見つかりません'); ついに 新しいエラーをスローします('見つかりません2'); } } キャッチ (エラー) { console.log(エラーメッセージ); } // 見つかりません2 finally ブロックから値を返すと、try と catch に return ステートメントがあるかどうかに関係なく、その値は try-catch-finally 全体の戻り値になります。これには、catch ブロックでスローされた例外が含まれます。 関数テスト() { 試す { 新しいエラーをスローします('it1が見つかりません'); 1 を返します。 } キャッチ (エラー) { 新しいエラーをスローします('見つかりません2'); 2を返します。 ついに 3 を返します。 } } コンソール.log(テスト()); // 3 トライ/キャッチパフォーマンスよく知られている反最適化パターンはtry/catchを使うことである。 V8 (およびおそらく他の JS エンジン) では、try/catch ステートメントを使用する関数は V8 コンパイラによって最適化できません。 ウィンドウ.onerrorwindow.onerrorにイベントリスナー関数を定義すると、プログラム内の他のコードによって生成されたキャッチされていない例外が、window.onerrorに登録されたリスナー関数によってキャッチされることが多くなります。
約束の例外Promise で例外がスローされました
Promise で例外をキャッチする
知らせ JavaScript 関数では、関数の実行を中断できるのは return / yield / throw のみであり、reject はそれ以上の実行を阻止しません。 例: 返品せずに拒否する Promise.resolve() .then(() => { console.log('実行前に拒否'); 拒否(新しいエラー('エラーをスロー')); console.log('実行後拒否'); }) .catch((エラー) => { console.log(エラーメッセージ); }); // 実行拒否の前に // エラーをスローする // 実行後拒否 リターンを使用して拒否する Promise.resolve() .then(() => { console.log('実行前に拒否'); 拒否を返します(新しい Error('throw error')); console.log('after execute deny'); //*** 違いはここにあります。return が返された場合、ここでは実行されません}) .catch((エラー) => { console.log(エラーメッセージ); }); // 実行拒否の前に // エラーをスローする Vue 例外キャプチャVue.config.errorHandler = (err, vm, info) => { console.error("vue errorHandler によってエラーがキャプチャされました"); コンソールエラー(err); コンソールエラー(vm); コンソールエラー(情報); }; 要約するこれで、JavaScript の基本に関するエラーキャッチメカニズムに関するこの記事は終了です。より関連性の高い js エラーキャッチメカニズムのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Mybatis での動的 SQL ステートメント分析
>>: Linux ソフトウェアのインストール場所を確認する簡単な方法
これは、データベース サーバーが、接続が多すぎるのを避けるために、一定時間非アクティブな状態が続くと...
による写真に示されている効果を例に挙げてみましょう。明らかに、「次へ」というテキストを水平方向だけで...
今日は春節の金貨の赤い封筒のアクティビティを作りました。なかなか良い出来だと思います。皆さんと共有し...
数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...
目次序文:ステップ1: 無料の天気予報インターフェースを見つけるステップ2: 天気予報インターフェー...
IntelliJ IDEA が Tomcat を使用して Javaweb プロジェクトをデプロイし...
目次序文: 1. インデックスメソッドを作成する2. インデックスを作成するために必要な権限序文: ...
NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は...
1. ボタンで使用される値は、「OK」、「削除」など、ボタンに表示されるテキストを指します。 2. ...
PostgreSQL正規表現の一般的な機能の概要正規表現は、複雑なデータ処理を必要とするプログラムに...
1. 問題の再現:各日の合計数を日ごとにカウントします。データのない日がある場合、グループ化によっ...
序文ヒント:以下はこの記事の主な内容です。以下のケースを参考にしてください。 1. オブジェクトスト...
一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...
目次序文【ログ取り消し】 【REDOログ】 【バイナリログ】要約する序文MySQL には、REDO ...
目次歴史pushState() メソッドpushState() の使用シナリオreplaceStat...