序文
node.jsアプリケーションで発生する可能性のあるエラーには多くの種類があります。たとえば、構文エラーまたはランタイムエラーが発生すると、JavaScriptエラーがトリガーされます。存在しない、またはアクセスしないファイルにアクセスしようとすると、システムエラーがトリガーされます。 JavaScriptエラーとシステムエラーエラーに加えて、ユーザーはエラーをカスタマイズすることもできます。
1。誤分類
node.jsはJavaScriptランタイムプラットフォームであり、そのアプリケーションエラーはすべてErrorインスタンスまたはErrorサブクラスインスタンスです。
node.jsアプリケーションでは、4つの可能なエラーがあります。
1。次のような標準のJavaScriptエラーエラー
<EvalError> : eval()呼び出しが失敗したときにスローされます
<SyntaxError> :違法なJavaScript構文を使用するときにスローされます
<RangeError> :指定された範囲内に値がないときにスローされます
<ReferenceError> :未定義の変数が使用されるとスローされます
<TypeError> :エラータイプパラメーターを渡すとき
<URIError> :グローバルURI関数が誤って使用されているときに投げられます
2。システムエラー。このタイプのエラーは、存在しないファイルを開こうとすること、閉じたソケットなどを介してデータを送信しようとするなど、基礎となるシステムによってトリガーされます。
3.カスタムエラー、このようなエラーは、アプリケーションコードのユーザーによってトリガーされます。
4。アサーションエラー。コードが法的論理に違反すると、このタイプのエラーはnode.js assertモジュールによってトリガーされます。
2。JavaScriptエラーとシステムエラー
2.1 JavaScriptエラーとカスタムエラー
標準のJavaScriptエラーは、JavaScript言語によって提供され、APIの構文エラーまたは不適切な使用を示しています。すべてのエラーはErrorクラスのインスタンスであり、標準のJavaScriptエラーは、エラーが発生したときに言語自体によって構築されます。
エラーをカスタマイズするときは、コンストラクターを使用してインスタンスを作成します。
>新しいエラー( 'エラーが発生しました、これはエラーメッセージです');エラー:エラーメッセージがReplserver.defaulteval(Repl.js:248:27)でReplserver.runboundのバウンド(domain.js:280:14)でReplserver.defaulteval(Repl.js:248:27)が見つかりました[as as as domain.js:domain.js:domain.js:293:12) emitone(events.js:82:20)でreplserver.emit(events.js:169:7)でreplserver.interface._online(readline.js:210:10)at replserver.interface._line(readline.js:549:8)at replserver.interface
上記のように、エラーをカスタマイズし、スローキーワードを使用してエラーを投げました。このエラーオブジェクトには、エラーmessageとエラースタック情報stackが含まれています。例外キャプチャ後、この情報は次の2つのプロパティからアクセスできます。
1。 error.message - エラーメッセージ
error.stackエラースタックトレース情報
エラーインスタンス自体のプロパティに加えて、いくつかのエラープロパティをカスタマイズすることもできます。たとえば、ステータスを表すプロパティステータスをカスタマイズします。
var error = new Error( '訪問したページは存在しません'); error.status = 404;
2.2システムエラー
システムエラーは、プログラムが処理できる動作エラーを表すJavaScriptエラーErrorオブジェクトの拡張であり、これらのエラーメッセージはシステムレベルで生成されます。 Errorインスタンスの属性に加えて、システムエラーインスタンスには次の属性も含まれます。
error.syscall失敗したシステムコール情報を表す文字列
error.errno整数エラーコード
3。 error.code - 通常は大文字eで始まるエラー文字列を表します
3。例外キャプチャ
node.jsは、イベント駆動型および非同期プログラミングベースを採用しています。つまり、 try / catch非同期に処理するときに発生するエラーをキャッチできません。この場合、次の2つの方法を使用して、エラーをキャッチまたは渡すことができます。
node.jsコールバック関数の例外キャプチャ
node.jsには多くの非同期APIがあり、その後、コールバック関数コールバックを介して処理されます。エラーが発生した場合、 Errorオブジェクトは通常、 callback関数の最初のパラメーターに含まれます。エラーが発生しない場合、最初のパラメーターはnullになります。のように:
const fs = require( 'fs'); fs.readfile( 'a exexistent file'、(err、data)=> {if(err){console.error( 'read file error'、err); return;} // other processing});イベントベースのエラー処理
オブジェクトがEventEmitterである場合、エラーをキャプチャして、オブジェクト的'error'を介して処理できます。
const net = require( 'net'); const connection = net.connect( 'localhost'); //「エラー」イベントハンドラーをストリームに追加します:connection.on( 'error'、(err)= {//指定されたサーバー//またはその他の接続エラーに接続できない場合、エラーはここに通過します。要約します
上記は、node.jsのいくつかのエラータイプの要約です。 node.jsのエラータイプを理解できれば、エラーと例外キャッチをよりよく処理するのに役立ちます。この記事の内容がすべての人に役立つことを願っています。