Node.js v25.0.0 ドキュメンテーション
- Node.js v25.0.0
-
目次
- エラー
- エラーの伝播とインターセプト
- クラス:
Error - クラス:
AssertionError - クラス:
RangeError - クラス:
ReferenceError - クラス:
SyntaxError - クラス:
SystemError - クラス:
TypeError - 例外 vs エラー
- OpenSSLエラー
- Node.js エラーコード
ABORT_ERRERR_ACCESS_DENIEDERR_AMBIGUOUS_ARGUMENTERR_ARG_NOT_ITERABLEERR_ASSERTIONERR_ASYNC_CALLBACKERR_ASYNC_TYPEERR_BROTLI_COMPRESSION_FAILEDERR_BROTLI_INVALID_PARAMERR_BUFFER_CONTEXT_NOT_AVAILABLEERR_BUFFER_OUT_OF_BOUNDSERR_BUFFER_TOO_LARGEERR_CANNOT_WATCH_SIGINTERR_CHILD_CLOSED_BEFORE_REPLYERR_CHILD_PROCESS_IPC_REQUIREDERR_CHILD_PROCESS_STDIO_MAXBUFFERERR_CLOSED_MESSAGE_PORTERR_CONSOLE_WRITABLE_STREAMERR_CONSTRUCT_CALL_INVALIDERR_CONSTRUCT_CALL_REQUIREDERR_CONTEXT_NOT_INITIALIZEDERR_CPU_PROFILE_ALREADY_STARTEDERR_CPU_PROFILE_NOT_STARTEDERR_CPU_PROFILE_TOO_MANYERR_CRYPTO_ARGON2_NOT_SUPPORTEDERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTEDERR_CRYPTO_ECDH_INVALID_FORMATERR_CRYPTO_ECDH_INVALID_PUBLIC_KEYERR_CRYPTO_ENGINE_UNKNOWNERR_CRYPTO_FIPS_FORCEDERR_CRYPTO_FIPS_UNAVAILABLEERR_CRYPTO_HASH_FINALIZEDERR_CRYPTO_HASH_UPDATE_FAILEDERR_CRYPTO_INCOMPATIBLE_KEYERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONSERR_CRYPTO_INITIALIZATION_FAILEDERR_CRYPTO_INVALID_AUTH_TAGERR_CRYPTO_INVALID_COUNTERERR_CRYPTO_INVALID_CURVEERR_CRYPTO_INVALID_DIGESTERR_CRYPTO_INVALID_IVERR_CRYPTO_INVALID_JWKERR_CRYPTO_INVALID_KEYLENERR_CRYPTO_INVALID_KEYPAIRERR_CRYPTO_INVALID_KEYTYPEERR_CRYPTO_INVALID_KEY_OBJECT_TYPEERR_CRYPTO_INVALID_MESSAGELENERR_CRYPTO_INVALID_SCRYPT_PARAMSERR_CRYPTO_INVALID_STATEERR_CRYPTO_INVALID_TAG_LENGTHERR_CRYPTO_JOB_INIT_FAILEDERR_CRYPTO_JWK_UNSUPPORTED_CURVEERR_CRYPTO_JWK_UNSUPPORTED_KEY_TYPEERR_CRYPTO_KEM_NOT_SUPPORTEDERR_CRYPTO_OPERATION_FAILEDERR_CRYPTO_PBKDF2_ERRORERR_CRYPTO_SCRYPT_NOT_SUPPORTEDERR_CRYPTO_SIGN_KEY_REQUIREDERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTHERR_CRYPTO_UNKNOWN_CIPHERERR_CRYPTO_UNKNOWN_DH_GROUPERR_CRYPTO_UNSUPPORTED_OPERATIONERR_DEBUGGER_ERRORERR_DEBUGGER_STARTUP_ERRORERR_DIR_CLOSEDERR_DIR_CONCURRENT_OPERATIONERR_DLOPEN_DISABLEDERR_DLOPEN_FAILEDERR_DNS_SET_SERVERS_FAILEDERR_DOMAIN_CALLBACK_NOT_AVAILABLEERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTUREERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTIONERR_ENCODING_INVALID_ENCODED_DATAERR_ENCODING_NOT_SUPPORTEDERR_EVAL_ESM_CANNOT_PRINTERR_EVENT_RECURSIONERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLEERR_FALSY_VALUE_REJECTIONERR_FEATURE_UNAVAILABLE_ON_PLATFORMERR_FS_CP_DIR_TO_NON_DIRERR_FS_CP_EEXISTERR_FS_CP_EINVALERR_FS_CP_FIFO_PIPEERR_FS_CP_NON_DIR_TO_DIRERR_FS_CP_SOCKETERR_FS_CP_SYMLINK_TO_SUBDIRECTORYERR_FS_CP_UNKNOWNERR_FS_EISDIRERR_FS_FILE_TOO_LARGEERR_FS_WATCH_QUEUE_OVERFLOWERR_HTTP2_ALTSVC_INVALID_ORIGINERR_HTTP2_ALTSVC_LENGTHERR_HTTP2_CONNECT_AUTHORITYERR_HTTP2_CONNECT_PATHERR_HTTP2_CONNECT_SCHEMEERR_HTTP2_ERRORERR_HTTP2_GOAWAY_SESSIONERR_HTTP2_HEADERS_AFTER_RESPONDERR_HTTP2_HEADERS_SENTERR_HTTP2_HEADER_SINGLE_VALUEERR_HTTP2_INFO_STATUS_NOT_ALLOWEDERR_HTTP2_INVALID_CONNECTION_HEADERSERR_HTTP2_INVALID_HEADER_VALUEERR_HTTP2_INVALID_INFO_STATUSERR_HTTP2_INVALID_ORIGINERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTHERR_HTTP2_INVALID_PSEUDOHEADERERR_HTTP2_INVALID_SESSIONERR_HTTP2_INVALID_SETTING_VALUEERR_HTTP2_INVALID_STREAMERR_HTTP2_MAX_PENDING_SETTINGS_ACKERR_HTTP2_NESTED_PUSHERR_HTTP2_NO_MEMERR_HTTP2_NO_SOCKET_MANIPULATIONERR_HTTP2_ORIGIN_LENGTHERR_HTTP2_OUT_OF_STREAMSERR_HTTP2_PAYLOAD_FORBIDDENERR_HTTP2_PING_CANCELERR_HTTP2_PING_LENGTHERR_HTTP2_PSEUDOHEADER_NOT_ALLOWEDERR_HTTP2_PUSH_DISABLEDERR_HTTP2_SEND_FILEERR_HTTP2_SEND_FILE_NOSEEKERR_HTTP2_SESSION_ERRORERR_HTTP2_SETTINGS_CANCELERR_HTTP2_SOCKET_BOUNDERR_HTTP2_SOCKET_UNBOUNDERR_HTTP2_STATUS_101ERR_HTTP2_STATUS_INVALIDERR_HTTP2_STREAM_CANCELERR_HTTP2_STREAM_ERRORERR_HTTP2_STREAM_SELF_DEPENDENCYERR_HTTP2_TOO_MANY_CUSTOM_SETTINGSERR_HTTP2_TOO_MANY_INVALID_FRAMESERR_HTTP2_TRAILERS_ALREADY_SENTERR_HTTP2_TRAILERS_NOT_READYERR_HTTP2_UNSUPPORTED_PROTOCOLERR_HTTP_BODY_NOT_ALLOWEDERR_HTTP_CONTENT_LENGTH_MISMATCHERR_HTTP_HEADERS_SENTERR_HTTP_INVALID_HEADER_VALUEERR_HTTP_INVALID_STATUS_CODEERR_HTTP_REQUEST_TIMEOUTERR_HTTP_SOCKET_ASSIGNEDERR_HTTP_SOCKET_ENCODINGERR_HTTP_TRAILER_INVALIDERR_ILLEGAL_CONSTRUCTORERR_IMPORT_ATTRIBUTE_MISSINGERR_IMPORT_ATTRIBUTE_TYPE_INCOMPATIBLEERR_IMPORT_ATTRIBUTE_UNSUPPORTEDERR_INCOMPATIBLE_OPTION_PAIRERR_INPUT_TYPE_NOT_ALLOWEDERR_INSPECTOR_ALREADY_ACTIVATEDERR_INSPECTOR_ALREADY_CONNECTEDERR_INSPECTOR_CLOSEDERR_INSPECTOR_COMMANDERR_INSPECTOR_NOT_ACTIVEERR_INSPECTOR_NOT_AVAILABLEERR_INSPECTOR_NOT_CONNECTEDERR_INSPECTOR_NOT_WORKERERR_INTERNAL_ASSERTIONERR_INVALID_ADDRESSERR_INVALID_ADDRESS_FAMILYERR_INVALID_ARG_TYPEERR_INVALID_ARG_VALUEERR_INVALID_ASYNC_IDERR_INVALID_BUFFER_SIZEERR_INVALID_CHARERR_INVALID_CURSOR_POSERR_INVALID_FDERR_INVALID_FD_TYPEERR_INVALID_FILE_URL_HOSTERR_INVALID_FILE_URL_PATHERR_INVALID_HANDLE_TYPEERR_INVALID_HTTP_TOKENERR_INVALID_IP_ADDRESSERR_INVALID_MIME_SYNTAXERR_INVALID_MODULEERR_INVALID_MODULE_SPECIFIERERR_INVALID_OBJECT_DEFINE_PROPERTYERR_INVALID_PACKAGE_CONFIGERR_INVALID_PACKAGE_TARGETERR_INVALID_PROTOCOLERR_INVALID_REPL_EVAL_CONFIGERR_INVALID_REPL_INPUTERR_INVALID_RETURN_PROPERTYERR_INVALID_RETURN_PROPERTY_VALUEERR_INVALID_RETURN_VALUEERR_INVALID_STATEERR_INVALID_SYNC_FORK_INPUTERR_INVALID_THISERR_INVALID_TUPLEERR_INVALID_TYPESCRIPT_SYNTAXERR_INVALID_URIERR_INVALID_URLERR_INVALID_URL_PATTERNERR_INVALID_URL_SCHEMEERR_IPC_CHANNEL_CLOSEDERR_IPC_DISCONNECTEDERR_IPC_ONE_PIPEERR_IPC_SYNC_FORKERR_IP_BLOCKEDERR_LOADER_CHAIN_INCOMPLETEERR_LOAD_SQLITE_EXTENSIONERR_MEMORY_ALLOCATION_FAILEDERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLEERR_METHOD_NOT_IMPLEMENTEDERR_MISSING_ARGSERR_MISSING_OPTIONERR_MISSING_PASSPHRASEERR_MISSING_PLATFORM_FOR_WORKERERR_MODULE_LINK_MISMATCHERR_MODULE_NOT_FOUNDERR_MULTIPLE_CALLBACKERR_NAPI_CONS_FUNCTIONERR_NAPI_INVALID_DATAVIEW_ARGSERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENTERR_NAPI_INVALID_TYPEDARRAY_LENGTHERR_NAPI_TSFN_CALL_JSERR_NAPI_TSFN_GET_UNDEFINEDERR_NON_CONTEXT_AWARE_DISABLEDERR_NOT_BUILDING_SNAPSHOTERR_NOT_IN_SINGLE_EXECUTABLE_APPLICATIONERR_NOT_SUPPORTED_IN_SNAPSHOTERR_NO_CRYPTOERR_NO_ICUERR_NO_TYPESCRIPTERR_OPERATION_FAILEDERR_OPTIONS_BEFORE_BOOTSTRAPPINGERR_OUT_OF_RANGEERR_PACKAGE_IMPORT_NOT_DEFINEDERR_PACKAGE_PATH_NOT_EXPORTEDERR_PARSE_ARGS_INVALID_OPTION_VALUEERR_PARSE_ARGS_UNEXPECTED_POSITIONALERR_PARSE_ARGS_UNKNOWN_OPTIONERR_PERFORMANCE_INVALID_TIMESTAMPERR_PERFORMANCE_MEASURE_INVALID_OPTIONSERR_PROTO_ACCESSERR_PROXY_INVALID_CONFIGERR_PROXY_TUNNELERR_QUIC_APPLICATION_ERRORERR_QUIC_CONNECTION_FAILEDERR_QUIC_ENDPOINT_CLOSEDERR_QUIC_OPEN_STREAM_FAILEDERR_QUIC_TRANSPORT_ERRORERR_QUIC_VERSION_NEGOTIATION_ERRORERR_REQUIRE_ASYNC_MODULEERR_REQUIRE_CYCLE_MODULEERR_REQUIRE_ESMERR_SCRIPT_EXECUTION_INTERRUPTEDERR_SCRIPT_EXECUTION_TIMEOUTERR_SERVER_ALREADY_LISTENERR_SERVER_NOT_RUNNINGERR_SINGLE_EXECUTABLE_APPLICATION_ASSET_NOT_FOUNDERR_SOCKET_ALREADY_BOUNDERR_SOCKET_BAD_BUFFER_SIZEERR_SOCKET_BAD_PORTERR_SOCKET_BAD_TYPEERR_SOCKET_BUFFER_SIZEERR_SOCKET_CLOSEDERR_SOCKET_CLOSED_BEFORE_CONNECTIONERR_SOCKET_CONNECTION_TIMEOUTERR_SOCKET_DGRAM_IS_CONNECTEDERR_SOCKET_DGRAM_NOT_CONNECTEDERR_SOCKET_DGRAM_NOT_RUNNINGERR_SOURCE_MAP_CORRUPTERR_SOURCE_MAP_MISSING_SOURCEERR_SOURCE_PHASE_NOT_DEFINEDERR_SQLITE_ERRORERR_SRI_PARSEERR_STREAM_ALREADY_FINISHEDERR_STREAM_CANNOT_PIPEERR_STREAM_DESTROYEDERR_STREAM_NULL_VALUESERR_STREAM_PREMATURE_CLOSEERR_STREAM_PUSH_AFTER_EOFERR_STREAM_UNABLE_TO_PIPEERR_STREAM_UNSHIFT_AFTER_END_EVENTERR_STREAM_WRAPERR_STREAM_WRITE_AFTER_ENDERR_STRING_TOO_LONGERR_SYNTHETICERR_SYSTEM_ERRORERR_TEST_FAILUREERR_TLS_ALPN_CALLBACK_INVALID_RESULTERR_TLS_ALPN_CALLBACK_WITH_PROTOCOLSERR_TLS_CERT_ALTNAME_FORMATERR_TLS_CERT_ALTNAME_INVALIDERR_TLS_DH_PARAM_SIZEERR_TLS_HANDSHAKE_TIMEOUTERR_TLS_INVALID_CONTEXTERR_TLS_INVALID_PROTOCOL_METHODERR_TLS_INVALID_PROTOCOL_VERSIONERR_TLS_INVALID_STATEERR_TLS_PROTOCOL_VERSION_CONFLICTERR_TLS_PSK_SET_IDENTITY_HINT_FAILEDERR_TLS_RENEGOTIATION_DISABLEDERR_TLS_REQUIRED_SERVER_NAMEERR_TLS_SESSION_ATTACKERR_TLS_SNI_FROM_SERVERERR_TRACE_EVENTS_CATEGORY_REQUIREDERR_TRACE_EVENTS_UNAVAILABLEERR_TRAILING_JUNK_AFTER_STREAM_ENDERR_TRANSFORM_ALREADY_TRANSFORMINGERR_TRANSFORM_WITH_LENGTH_0ERR_TTY_INIT_FAILEDERR_UNAVAILABLE_DURING_EXITERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SETERR_UNESCAPED_CHARACTERSERR_UNHANDLED_ERRORERR_UNKNOWN_BUILTIN_MODULEERR_UNKNOWN_CREDENTIALERR_UNKNOWN_ENCODINGERR_UNKNOWN_FILE_EXTENSIONERR_UNKNOWN_MODULE_FORMATERR_UNKNOWN_SIGNALERR_UNSUPPORTED_DIR_IMPORTERR_UNSUPPORTED_ESM_URL_SCHEMEERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPINGERR_UNSUPPORTED_RESOLVE_REQUESTERR_UNSUPPORTED_TYPESCRIPT_SYNTAXERR_USE_AFTER_CLOSEERR_VALID_PERFORMANCE_ENTRY_TYPEERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSINGERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING_FLAGERR_VM_MODULE_ALREADY_LINKEDERR_VM_MODULE_CACHED_DATA_REJECTEDERR_VM_MODULE_CANNOT_CREATE_CACHED_DATAERR_VM_MODULE_DIFFERENT_CONTEXTERR_VM_MODULE_LINK_FAILUREERR_VM_MODULE_NOT_MODULEERR_VM_MODULE_STATUSERR_WASI_ALREADY_STARTEDERR_WASI_NOT_STARTEDERR_WEBASSEMBLY_RESPONSEERR_WORKER_INIT_FAILEDERR_WORKER_INVALID_EXEC_ARGVERR_WORKER_MESSAGING_ERROREDERR_WORKER_MESSAGING_FAILEDERR_WORKER_MESSAGING_SAME_THREADERR_WORKER_MESSAGING_TIMEOUTERR_WORKER_NOT_RUNNINGERR_WORKER_OUT_OF_MEMORYERR_WORKER_PATHERR_WORKER_UNSERIALIZABLE_ERRORERR_WORKER_UNSUPPORTED_OPERATIONERR_ZLIB_INITIALIZATION_FAILEDERR_ZSTD_INVALID_PARAMHPE_CHUNK_EXTENSIONS_OVERFLOWHPE_HEADER_OVERFLOWHPE_UNEXPECTED_CONTENT_LENGTHMODULE_NOT_FOUND
- レガシーNode.jsエラーコード
ERR_CANNOT_TRANSFER_OBJECTERR_CPU_USAGEERR_CRYPTO_HASH_DIGEST_NO_UTF16ERR_CRYPTO_SCRYPT_INVALID_PARAMETERERR_FS_INVALID_SYMLINK_TYPEERR_HTTP2_FRAME_ERRORERR_HTTP2_HEADERS_OBJECTERR_HTTP2_HEADER_REQUIREDERR_HTTP2_INFO_HEADERS_AFTER_RESPONDERR_HTTP2_STREAM_CLOSEDERR_HTTP_INVALID_CHARERR_IMPORT_ASSERTION_TYPE_FAILEDERR_IMPORT_ASSERTION_TYPE_MISSINGERR_IMPORT_ASSERTION_TYPE_UNSUPPORTEDERR_INDEX_OUT_OF_RANGEERR_INVALID_OPT_VALUEERR_INVALID_OPT_VALUE_ENCODINGERR_INVALID_PERFORMANCE_MARKERR_INVALID_TRANSFER_OBJECTERR_MANIFEST_ASSERT_INTEGRITYERR_MANIFEST_DEPENDENCY_MISSINGERR_MANIFEST_INTEGRITY_MISMATCHERR_MANIFEST_INVALID_RESOURCE_FIELDERR_MANIFEST_INVALID_SPECIFIERERR_MANIFEST_PARSE_POLICYERR_MANIFEST_TDZERR_MANIFEST_UNKNOWN_ONERRORERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LISTERR_MISSING_TRANSFERABLE_IN_TRANSFER_LISTERR_NAPI_CONS_PROTOTYPE_OBJECTERR_NAPI_TSFN_START_IDLE_LOOPERR_NAPI_TSFN_STOP_IDLE_LOOPERR_NO_LONGER_SUPPORTEDERR_OUTOFMEMORYERR_PARSE_HISTORY_DATAERR_SOCKET_CANNOT_SENDERR_STDERR_CLOSEERR_STDOUT_CLOSEERR_STREAM_READ_NOT_IMPLEMENTEDERR_TAP_LEXER_ERRORERR_TAP_PARSER_ERRORERR_TAP_VALIDATION_ERRORERR_TLS_RENEGOTIATION_FAILEDERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFERERR_UNKNOWN_STDIN_TYPEERR_UNKNOWN_STREAM_TYPEERR_V8BREAKITERATORERR_VALUE_OUT_OF_RANGEERR_VM_MODULE_LINKING_ERROREDERR_VM_MODULE_NOT_LINKEDERR_WORKER_UNSUPPORTED_EXTENSIONERR_ZLIB_BINDING_CLOSED
- OpenSSL エラーコード
- エラー
-
索引
- アサーションテスト
- 非同期コンテキストの追跡
- Async hooks
- Buffer
- C++アドオン
- Node-API を使用した C/C++ アドオン
- C++ embedder API
- 子プロセス
- Cluster
- コマンドラインオプション
- Console
- Crypto
- Debugger
- 非推奨のAPI
- Diagnostics Channel
- DNS
- Domain
- 環境変数
- エラー
- Events
- ファイルシステム
- Globals
- HTTP
- HTTP/2
- HTTPS
- Inspector
- 国際化
- モジュール: CommonJS モジュール
- モジュール: ECMAScript モジュール
- モジュール:
node:moduleAPI - モジュール: パッケージ
- モジュール: TypeScript
- Net
- OS
- Path
- Performance hooks
- パーミッション
- Process
- Punycode
- クエリストリング
- Readline
- REPL
- レポート
- 単一実行可能ファイルアプリケーション
- SQLite
- Stream
- String decoder
- テストランナー
- タイマー
- TLS/SSL
- トレースイベント
- TTY
- UDP/datagram
- URL
- ユーティリティ
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- ワーカースレッド
- Zlib
- 他のバージョン
- オプション
エラー#
Node.jsで実行されるアプリケーションは、一般的に以下のカテゴリのエラーを経験します。
- <EvalError>、<SyntaxError>、<RangeError>、<ReferenceError>、<TypeError>、および <URIError> のような標準的なJavaScriptエラー。
- 標準的な
DOMException。 - 存在しないファイルを開こうとしたり、閉じられたソケットでデータを送信しようとするなど、基盤となるオペレーティングシステムの制約によって引き起こされるシステムエラー。
AssertionErrorは、Node.jsが決して起こるべきではない例外的なロジック違反を検出したときに発生する可能性のある特別なエラークラスです。これらは通常、node:assertモジュールによって発生します。- アプリケーションコードによって引き起こされるユーザー指定のエラー。
Node.jsによって発生するすべてのJavaScriptおよびシステムエラーは、標準のJavaScript <Error>クラスを継承するか、そのインスタンスであり、そのクラスで利用可能なプロパティを少なくとも提供することが保証されています。
Node.jsによって発生するエラーのerror.messageプロパティは、どのバージョンでも変更される可能性があります。エラーを識別するためには、代わりにerror.codeを使用してください。DOMExceptionの場合は、そのタイプを識別するためにdomException.nameを使用してください。
エラーの伝播とインターセプト#
Node.jsは、アプリケーションの実行中に発生するエラーを伝播および処理するためのいくつかのメカニズムをサポートしています。これらのエラーがどのように報告され、処理されるかは、Errorの種類と呼び出されるAPIのスタイルに完全に依存します。
すべてのJavaScriptエラーは、標準のJavaScriptのthrowメカニズムを使用してエラーを即座に生成しスローする例外として扱われます。これらは、JavaScript言語が提供するtry…catch構文を使用して処理されます。
// Throws with a ReferenceError because z is not defined.
try {
const m = 1;
const n = m + z;
} catch (err) {
// Handle the error here.
}
JavaScriptのthrowメカニズムを使用すると、例外が発生します。これは処理されなければならず、さもなければNode.jsプロセスは即座に終了します。
いくつかの例外を除き、同期API(<Promise>を返さず、callback関数も受け入れないブロッキングメソッド、例えばfs.readFileSync)は、エラーを報告するためにthrowを使用します。
非同期API内で発生するエラーは、複数の方法で報告されることがあります。
-
一部の非同期メソッドは<Promise>を返します。これが拒否される可能性があることを常に考慮する必要があります。未処理のPromiseリジェクションに対してプロセスがどのように反応するかについては、
--unhandled-rejectionsフラグを参照してください。const fs = require('node:fs/promises'); (async () => { let data; try { data = await fs.readFile('a file that does not exist'); } catch (err) { console.error('There was an error reading the file!', err); return; } // Otherwise handle the data })(); -
callback関数を受け入れるほとんどの非同期メソッドは、その関数の最初の引数として渡されるErrorオブジェクトを受け入れます。その最初の引数がnullではなく、Errorのインスタンスである場合、処理すべきエラーが発生したことを意味します。const fs = require('node:fs'); fs.readFile('a file that does not exist', (err, data) => { if (err) { console.error('There was an error reading the file!', err); return; } // Otherwise handle the data }); -
EventEmitterであるオブジェクトで非同期メソッドが呼び出された場合、エラーはそのオブジェクトの'error'イベントにルーティングされることがあります。const net = require('node:net'); const connection = net.connect('localhost'); // Adding an 'error' event handler to a stream: connection.on('error', (err) => { // If the connection is reset by the server, or if it can't // connect at all, or on any sort of error encountered by // the connection, the error will be sent here. console.error(err); }); connection.pipe(process.stdout); -
Node.js APIのいくつかの通常は非同期のメソッドは、
try…catchを使用して処理しなければならない例外を発生させるために、依然としてthrowメカニズムを使用する場合があります。そのようなメソッドの包括的なリストはありません。適切なエラー処理メカニズムを決定するために、各メソッドのドキュメントを参照してください。
'error'イベントメカニズムの使用は、ストリームベースおよびイベントエミッターベースのAPIで最も一般的です。これらは、単一の操作が成功または失敗するのではなく、時間経過とともに一連の非同期操作を表します。
すべてのEventEmitterオブジェクトについて、'error'イベントハンドラが提供されていない場合、エラーはスローされ、Node.jsプロセスは未キャッチの例外を報告してクラッシュします。ただし、'uncaughtException'イベントのハンドラが登録されている場合、または非推奨のnode:domainモジュールが使用されている場合は除きます。
const EventEmitter = require('node:events');
const ee = new EventEmitter();
setImmediate(() => {
// This will crash the process because no 'error' event
// handler has been added.
ee.emit('error', new Error('This will crash'));
});
このようにして生成されたエラーは、呼び出し元のコードがすでに終了した後にスローされるため、try…catchを使用してインターセプトすることはできません。
開発者は、各メソッドのドキュメントを参照して、それらのメソッドによって発生したエラーがどのように伝播するかを正確に判断する必要があります。
クラス: Error#
エラーが発生した特定の状況を示さない、一般的なJavaScriptの<Error>オブジェクトです。Errorオブジェクトは、Errorがインスタンス化されたコード内のポイントを詳述する「スタックトレース」をキャプチャし、エラーのテキスト記述を提供することがあります。
すべてのシステムおよびJavaScriptエラーを含む、Node.jsによって生成されるすべてのエラーは、Errorクラスのインスタンスであるか、またはそれを継承します。
new Error(message[, options])#
新しいErrorオブジェクトを作成し、error.messageプロパティを提供されたテキストメッセージに設定します。オブジェクトがmessageとして渡された場合、テキストメッセージはString(message)を呼び出すことによって生成されます。causeオプションが提供された場合、それはerror.causeプロパティに割り当てられます。error.stackプロパティは、new Error()が呼び出されたコード内のポイントを表します。スタックトレースはV8のスタックトレースAPIに依存します。スタックトレースは、(a)同期コード実行の開始、または(b)プロパティError.stackTraceLimitによって与えられるフレーム数のいずれか小さい方まで拡張されます。
Error.captureStackTrace(targetObject[, constructorOpt])#
targetObject<Object>constructorOpt<Function>
targetObjectに.stackプロパティを作成します。アクセスされると、Error.captureStackTrace()が呼び出されたコード内の場所を表す文字列を返します。
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
トレースの最初の行は ${myObject.name}: ${myObject.message} で始まります。
オプションのconstructorOpt引数は関数を受け入れます。指定された場合、constructorOptを含む、constructorOptより上のすべてのフレームは生成されるスタックトレースから省略されます。
constructorOpt引数は、エラー生成の実装詳細をユーザーから隠すのに役立ちます。例えば、
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
Error.stackTraceLimit#
- 型: <number>
Error.stackTraceLimitプロパティは、スタックトレースによって収集されるスタックフレームの数を指定します(new Error().stackまたはError.captureStackTrace(obj)によって生成されたもの)。
デフォルト値は10ですが、任意の有効なJavaScriptの数値に設定できます。変更は、値が変更された後にキャプチャされるすべてのスタックトレースに影響します。
数値以外の値、または負の数に設定された場合、スタックトレースはどのフレームもキャプチャしません。
error.cause#
- タイプ: <any>
存在する場合、error.causeプロパティはErrorの根本的な原因です。これは、エラーをキャッチして、異なるメッセージやコードで新しいエラーをスローする際に、元のエラーにアクセスできるようにするために使用されます。
error.causeプロパティは通常、new Error(message, { cause })を呼び出すことによって設定されます。causeオプションが提供されない場合、コンストラクタによって設定されることはありません。
このプロパティにより、エラーを連鎖させることができます。Errorオブジェクトをシリアライズする際、util.inspect()は、error.causeが設定されていれば再帰的にシリアライズします。
const cause = new Error('The remote HTTP server responded with a 500 status');
const symptom = new Error('The message failed to send', { cause });
console.log(symptom);
// Prints:
// Error: The message failed to send
// at REPL2:1:17
// at Script.runInThisContext (node:vm:130:12)
// ... 7 lines matching cause stack trace ...
// at [_line] [as _line] (node:internal/readline/interface:886:18) {
// [cause]: Error: The remote HTTP server responded with a 500 status
// at REPL1:1:15
// at Script.runInThisContext (node:vm:130:12)
// at REPLServer.defaultEval (node:repl:574:29)
// at bound (node:domain:426:15)
// at REPLServer.runBound [as eval] (node:domain:437:12)
// at REPLServer.onLine (node:repl:902:10)
// at REPLServer.emit (node:events:549:35)
// at REPLServer.emit (node:domain:482:12)
// at [_onLine] [as _onLine] (node:internal/readline/interface:425:12)
// at [_line] [as _line] (node:internal/readline/interface:886:18)
error.code#
- 型: <string>
error.codeプロパティは、エラーの種類を識別する文字列ラベルです。error.codeはエラーを識別するための最も安定した方法です。Node.jsのメジャーバージョン間でのみ変更されます。対照的に、error.message文字列はNode.jsのどのバージョン間でも変更される可能性があります。特定のコードの詳細については、Node.js エラーコードを参照してください。
error.message#
- 型: <string>
error.messageプロパティは、new Error(message)を呼び出すことによって設定されるエラーの文字列記述です。コンストラクタに渡されたmessageはErrorのスタックトレースの最初の行にも表示されますが、Errorオブジェクトが作成された後にこのプロパティを変更しても、スタックトレースの最初の行は変更されない場合があります(たとえば、このプロパティが変更される前にerror.stackが読み取られた場合)。
const err = new Error('The message');
console.error(err.message);
// Prints: The message
error.stack#
- 型: <string>
error.stackプロパティは、Errorがインスタンス化されたコード内のポイントを記述する文字列です。
Error: Things keep happening!
at /home/gbusey/file.js:525:2
at Frobnicator.refrobulate (/home/gbusey/business-logic.js:424:21)
at Actor.<anonymous> (/home/gbusey/actors.js:400:8)
at increaseSynergy (/home/gbusey/actors.js:701:6)
最初の行は<エラークラス名>: <エラーメッセージ>としてフォーマットされ、その後に一連のスタックフレーム(各行は「at 」で始まる)が続きます。各フレームは、エラーが生成される原因となったコード内の呼び出しサイトを記述します。V8は各関数の名前(変数名、関数名、またはオブジェクトメソッド名による)を表示しようとしますが、適切な名前を見つけられないことがあります。V8が関数の名前を決定できない場合、そのフレームには場所情報のみが表示されます。それ以外の場合は、決定された関数名が括弧内に付加された場所情報と共に表示されます。
フレームはJavaScript関数に対してのみ生成されます。例えば、実行がcheetahifyというC++アドオン関数を同期的に通過し、それがJavaScript関数を呼び出す場合、cheetahify呼び出しを表すフレームはスタックトレースに存在しません。
const cheetahify = require('./native-binding.node');
function makeFaster() {
// `cheetahify()` *synchronously* calls speedy.
cheetahify(function speedy() {
throw new Error('oh no!');
});
}
makeFaster();
// will throw:
// /home/gbusey/file.js:6
// throw new Error('oh no!');
// ^
// Error: oh no!
// at speedy (/home/gbusey/file.js:6:11)
// at makeFaster (/home/gbusey/file.js:5:3)
// at Object.<anonymous> (/home/gbusey/file.js:10:1)
// at Module._compile (module.js:456:26)
// at Object.Module._extensions..js (module.js:474:10)
// at Module.load (module.js:356:32)
// at Function.Module._load (module.js:312:12)
// at Function.Module.runMain (module.js:497:10)
// at startup (node.js:119:16)
// at node.js:906:3
場所情報は以下のいずれかになります。
native, フレームがV8内部の呼び出しを表す場合([].forEachなど)。plain-filename.js:line:column、フレームがNode.js内部の呼び出しを表す場合。/absolute/path/to/file.js:line:column, フレームがユーザープログラム(CommonJSモジュールシステムを使用)またはその依存関係内の呼び出しを表す場合。<transport-protocol>:///url/to/module/file.mjs:line:column、フレームがユーザープログラム(ESモジュールシステムを使用)またはその依存関係内の呼び出しを表す場合。
スタックトレースを表す文字列は、error.stackプロパティがアクセスされたときに遅延生成されます。
スタックトレースによってキャプチャされるフレームの数は、Error.stackTraceLimitまたは現在のイベントループティックで利用可能なフレーム数のうち、小さい方に制限されます。
クラス: AssertionError#
- 拡張元: <errors.Error>
アサーションの失敗を示します。詳細については、クラス: assert.AssertionErrorを参照してください。
クラス: RangeError#
- 拡張元: <errors.Error>
提供された引数が、関数の許容値のセットまたは範囲内にないことを示します。数値範囲であるか、特定の関数パラメータのオプションのセット外であるかに関わらずです。
require('node:net').connect(-1);
// Throws "RangeError: "port" option should be >= 0 and < 65536: -1"
Node.jsは、引数検証の一形態として、RangeErrorインスタンスを即座に生成してスローします。
クラス: ReferenceError#
- 拡張元: <errors.Error>
定義されていない変数にアクセスしようとしていることを示します。このようなエラーは、一般的にコードのタイプミスや、その他の壊れたプログラムを示します。
クライアントコードはこれらのエラーを生成し伝播させることができますが、実際にはV8のみがこれを行います。
doesNotExist;
// Throws ReferenceError, doesNotExist is not a variable in this program.
アプリケーションが動的にコードを生成して実行していない限り、ReferenceErrorインスタンスはコードまたはその依存関係のバグを示します。
クラス: SyntaxError#
- 拡張元: <errors.Error>
プログラムが有効なJavaScriptではないことを示します。これらのエラーは、コード評価の結果としてのみ生成および伝播される可能性があります。コード評価は、eval、Function、require、またはvmの結果として発生する可能性があります。これらのエラーは、ほとんどの場合、壊れたプログラムを示します。
try {
require('node:vm').runInThisContext('binary ! isNotOk');
} catch (err) {
// 'err' will be a SyntaxError.
}
SyntaxErrorインスタンスは、それらを作成したコンテキストでは回復不能です。他のコンテキストによってのみキャッチできます。
クラス: SystemError#
- 拡張元: <errors.Error>
Node.jsは、実行時環境内で例外が発生したときにシステムエラーを生成します。これらは通常、アプリケーションがオペレーティングシステムの制約に違反した場合に発生します。たとえば、アプリケーションが存在しないファイルを読み取ろうとすると、システムエラーが発生します。
address<string> 存在する場合、ネットワーク接続が失敗したアドレスcode<string> 文字列のエラーコードdest<string> 存在する場合、ファイルシステムエラーを報告する際のファイルパスの宛先errno<number> システムが提供するエラー番号info<Object> 存在する場合、エラー状態に関する追加の詳細message<string> システムが提供する人間が読めるエラーの説明path<string> 存在する場合、ファイルシステムエラーを報告する際のファイルパスport<number> 存在する場合、利用できないネットワーク接続ポートsyscall<string> エラーを引き起こしたシステムコールの名前
error.errno#
- 型: <number>
error.errnoプロパティは、libuv Error handlingで定義されているエラーコードに対応する負の数です。
Windowsでは、システムから提供されるエラー番号はlibuvによって正規化されます。
エラーコードの文字列表現を取得するには、util.getSystemErrorName(error.errno) を使用してください。
一般的なシステムエラー#
これは、Node.jsプログラムを作成する際によく遭遇するシステムエラーのリストです。包括的なリストについては、errno(3) man pageを参照してください。
-
EACCES(アクセス拒否):ファイルのアクセス権限によって禁止されている方法でファイルにアクセスしようとしました。 -
EADDRINUSE(アドレスは既に使用中):ローカルシステム上の別のサーバーが既にそのアドレスを占有しているため、サーバー(net、http、またはhttps)をローカルアドレスにバインドしようとして失敗しました。 -
ECONNREFUSED(接続拒否):ターゲットマシンがアクティブに接続を拒否したため、接続できませんでした。これは通常、外部ホストで非アクティブなサービスに接続しようとした結果です。 -
ECONNRESET(ピアによる接続リセット):ピアによって接続が強制的に閉じられました。これは通常、タイムアウトまたは再起動によるリモートソケット上の接続の損失から生じます。httpおよびnetモジュールで一般的に遭遇します。 -
EEXIST(ファイルが存在します):ターゲットが存在しないことを要求する操作のターゲットとして、既存のファイルが指定されました。 -
EISDIR(ディレクトリです):操作はファイルを期待していましたが、指定されたパス名はディレクトリでした。 -
EMFILE(システム内のオープンファイルが多すぎます):システムで許可されているファイル記述子の最大数に達し、少なくとも1つが閉じられるまで、別の記述子の要求は満たされません。これは、特にプロセスに対するファイル記述子の制限が低いシステム(特にmacOS)で、多くのファイルを同時に並行して開くときに発生します。低い制限を修正するには、Node.jsプロセスを実行する同じシェルでulimit -n 2048を実行します。 -
ENOENT(そのようなファイルまたはディレクトリはありません):指定されたパス名のコンポーネントが存在しないことを示すために、fs操作によって一般的に発生します。指定されたパスによってエンティティ(ファイルまたはディレクトリ)が見つかりませんでした。 -
ENOTDIR(ディレクトリではありません):指定されたパス名のコンポーネントは存在しましたが、期待されていたディレクトリではありませんでした。fs.readdirによって一般的に発生します。 -
ENOTEMPTY(ディレクトリは空ではありません):エントリを持つディレクトリが、空のディレクトリを必要とする操作(通常はfs.unlink)のターゲットでした。 -
ENOTFOUND(DNSルックアップ失敗):EAI_NODATAまたはEAI_NONAMEのいずれかのDNS障害を示します。これは標準のPOSIXエラーではありません。 -
EPERM(操作は許可されていません):昇格された権限を必要とする操作を実行しようとしました。 -
EPIPE(壊れたパイプ):データを読み取るプロセスがないパイプ、ソケット、またはFIFOへの書き込み。通常、netおよびhttpレイヤーで遭遇し、書き込み中のストリームのリモート側が閉じられたことを示します。 -
ETIMEDOUT(操作がタイムアウトしました):接続先の相手が一定時間内に適切に応答しなかったため、接続または送信要求が失敗しました。通常、httpまたはnetによって遭遇します。多くの場合、socket.end()が適切に呼び出されなかった兆候です。
クラス: TypeError#
提供された引数が許容される型でないことを示します。例えば、文字列を期待するパラメータに関数を渡すとTypeErrorになります。
require('node:url').parse(() => { });
// Throws TypeError, since it expected a string.
Node.jsは、引数検証の一形態として、TypeErrorインスタンスを即座に生成してスローします。
例外 vs エラー#
JavaScriptの例外とは、無効な操作の結果として、またはthrow文のターゲットとしてスローされる値です。これらの値がErrorのインスタンスまたはErrorから継承したクラスである必要はありませんが、Node.jsまたはJavaScriptランタイムによってスローされるすべての例外は、Errorのインスタンスになります。
一部の例外は、JavaScriptレイヤーでは回復不能です。このような例外は、常にNode.jsプロセスをクラッシュさせます。例としては、assert()チェックやC++レイヤーでのabort()呼び出しがあります。
OpenSSLエラー#
cryptoまたはtlsに起因するエラーはErrorクラスのものであり、標準の.codeおよび.messageプロパティに加えて、いくつかの追加のOpenSSL固有のプロパティを持つ場合があります。
error.opensslErrorStack#
OpenSSLライブラリのどこでエラーが発生したかのコンテキストを提供できるエラーの配列。
error.function#
エラーが発生したOpenSSL関数。
error.library#
エラーが発生したOpenSSLライブラリ。
Node.js エラーコード#
ABORT_ERR#
操作が中止されたときに使用されます(通常はAbortControllerを使用)。
AbortSignalを使用しないAPIは、通常このコードのエラーを発生させません。
このコードは、ウェブプラットフォームのAbortErrorとの互換性を保つために、Node.jsのエラーが使用する通常のERR_*規則を使用しません。
ERR_AMBIGUOUS_ARGUMENT#
関数の引数が、関数のシグネチャが誤解されている可能性を示唆する方法で使用されています。これは、assert.throws(block, message)のmessageパラメータがblockによってスローされたエラーメッセージと一致する場合に、node:assertモジュールによってスローされます。この使用法は、ユーザーがmessageを、blockがスローしない場合にAssertionErrorが表示するメッセージではなく、期待されるメッセージであると信じていることを示唆するためです。
ERR_ASSERTION#
Node.jsが決して起こるべきではない例外的なロジック違反を検出したときにトリガーされる可能性のある特別なタイプのエラーです。これらは通常、node:assertモジュールによって発生します。
ERR_BUFFER_CONTEXT_NOT_AVAILABLE#
アドオンまたはエンベッダーコードからNode.jsのBufferインスタンスを作成しようとしましたが、Node.jsインスタンスに関連付けられていないJSエンジンのコンテキスト内にいました。Bufferメソッドに渡されたデータは、メソッドが戻るまでに解放されます。
このエラーに遭遇した場合、Bufferインスタンスを作成する代わりの方法として、通常のUint8Arrayを作成することが考えられます。これは、結果のオブジェクトのプロトタイプが異なるだけです。Uint8Arrayは、Bufferが受け入れられるすべてのNode.jsコアAPIで一般的に受け入れられており、すべてのコンテキストで利用可能です。
ERR_CHILD_PROCESS_STDIO_MAXBUFFER#
メインプロセスが子プロセスのSTDERR/STDOUTからデータを読み取ろうとし、データの長さがmaxBufferオプションよりも長い場合に使用されます。
ERR_CONSOLE_WRITABLE_STREAM#
Consoleがstdoutストリームなしでインスタンス化されたか、Consoleが書き込み不可能なstdoutまたはstderrストリームを持っています。
ERR_CONTEXT_NOT_INITIALIZED#
APIに渡されたvmコンテキストはまだ初期化されていません。これは、コンテキストの作成中にエラーが発生した場合(そしてキャッチされた場合)、たとえば、割り当てが失敗した場合やコンテキスト作成時に最大コールスタックサイズに達した場合などに発生する可能性があります。
ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED#
OpenSSLエンジンが要求されましたが(例えば、clientCertEngineやprivateKeyEngineのTLSオプションを通じて)、使用中のOpenSSLのバージョンではサポートされていません。これはおそらくコンパイル時のフラグOPENSSL_NO_ENGINEによるものです。
ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY#
crypto.ECDH()クラスのcomputeSecret()メソッドに、key引数に対して無効な値が渡されました。これは、公開鍵が楕円曲線の外にあることを意味します。
ERR_CRYPTO_HASH_FINALIZED#
hash.digest()が複数回呼び出されました。hash.digest()メソッドは、Hashオブジェクトのインスタンスごとに1回しか呼び出してはいけません。
ERR_CRYPTO_INVALID_STATE#
無効な状態のオブジェクトに対して暗号メソッドが使用されました。例えば、cipher.final()を呼び出す前にcipher.getAuthTag()を呼び出すなどです。
ERR_CRYPTO_SCRYPT_NOT_SUPPORTED#
Node.jsはscryptサポートなしでコンパイルされました。公式リリースバイナリでは不可能ですが、カスタムビルド(ディストロビルドを含む)で発生する可能性があります。
ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH#
crypto.timingSafeEqual()が、異なる長さのBuffer、TypedArray、またはDataView引数で呼び出されました。
ERR_CRYPTO_UNKNOWN_DH_GROUP#
不明なDiffie-Hellmanグループ名が指定されました。有効なグループ名のリストについては、crypto.getDiffieHellman()を参照してください。
ERR_DOMAIN_CALLBACK_NOT_AVAILABLE#
node:domainモジュールは、必要なエラー処理フックを確立できなかったため使用できませんでした。これは、以前にprocess.setUncaughtExceptionCaptureCallback()が呼び出されたためです。
ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE#
process.setUncaughtExceptionCaptureCallback()を呼び出すことができませんでした。なぜなら、以前にnode:domainモジュールが読み込まれていたためです。
スタックトレースは、node:domainモジュールが読み込まれた時点を含むように拡張されます。
ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION#
v8.startupSnapshot.setDeserializeMainFunction()は、以前にすでに呼び出されていたため、呼び出すことができませんでした。
ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE#
JS実行コンテキストがNode.js環境に関連付けられていません。これは、Node.jsが組み込みライブラリとして使用され、JSエンジンのいくつかのフックが適切に設定されていない場合に発生する可能性があります。
ERR_FS_FILE_TOO_LARGE#
fs.readFile()でサポートされている2GiBの制限を超えるファイルを読み取ろうとしました。これはBufferの制限ではなく、内部I/Oの制約です。より大きなファイルを扱うには、fs.createReadStream()を使用してファイルをチャンクで読み取ることを検討してください。
ERR_HTTP2_INVALID_INFO_STATUS#
無効なHTTP情報ステータスコードが指定されました。情報ステータスコードは、100から199(両端を含む)までの整数でなければなりません。
ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH#
http2.getUnpackedSettings() APIに渡される入力BufferおよびUint8Arrayインスタンスは、長さが6の倍数でなければなりません。
ERR_HTTP2_INVALID_PSEUDOHEADER#
有効なHTTP/2擬似ヘッダー(:status, :path, :authority, :scheme, および :method)のみ使用できます。
ERR_HTTP2_MAX_PENDING_SETTINGS_ACK#
接続されたピアにHTTP/2のSETTINGSフレームが送信されるたびに、ピアは新しいSETTINGSを受信して適用したことを示す確認応答を送信する必要があります。デフォルトでは、一度に送信できる未確認のSETTINGSフレームの最大数が決まっています。このエラーコードは、その制限に達した場合に使用されます。
ERR_HTTP2_SEND_FILE_NOSEEK#
Http2Stream.prototype.responseWithFile() APIを使用して通常ファイル以外のものを送信しようとしましたが、offsetまたはlengthオプションが提供されました。
ERR_HTTP2_SOCKET_BOUND#
既に別のHttp2Sessionオブジェクトにバインドされているnet.Socketまたはtls.TLSSocketにHttp2Sessionオブジェクトを接続しようとしました。
ERR_HTTP2_STREAM_SELF_DEPENDENCY#
HTTP/2ストリームの優先順位を設定する際、ストリームを親ストリームの依存関係としてマークすることができます。このエラーコードは、ストリームを自身の依存関係としてマークしようとした場合に使用されます。
ERR_HTTP2_TOO_MANY_INVALID_FRAMES#
maxSessionInvalidFramesオプションで指定された、ピアから送信された許容可能な無効なHTTP/2プロトコルフレームの制限を超えました。
ERR_HTTP2_TRAILERS_NOT_READY#
http2stream.sendTrailers()メソッドは、Http2Streamオブジェクトで'wantTrailers'イベントが発生した後でなければ呼び出すことができません。'wantTrailers'イベントは、Http2StreamにwaitForTrailersオプションが設定されている場合にのみ発生します。
ERR_INPUT_TYPE_NOT_ALLOWED#
--input-typeフラグがファイルを実行するために使用されました。このフラグは--eval、--print、またはSTDIN経由の入力でのみ使用できます。
ERR_INSPECTOR_ALREADY_ACTIVATED#
node:inspectorモジュールの使用中に、インスペクターが既にポートでリッスンを開始しているときにインスペクターをアクティブ化しようとしました。別のアドレスでアクティブ化する前にinspector.close()を使用してください。
ERR_INTERNAL_ASSERTION#
Node.jsにバグがあるか、Node.jsの内部が誤って使用されました。エラーを修正するには、https://github.com/nodejs/node/issuesでissueをオープンしてください。
ERR_INVALID_FILE_URL_HOST#
file: URLを消費するNode.js API(fsモジュールの一部の関数など)が、互換性のないホストを持つファイルURLに遭遇しました。この状況は、localhostまたは空のホストのみがサポートされているUnixライクなシステムでのみ発生する可能性があります。
ERR_INVALID_FILE_URL_PATH#
file: URLを消費するNode.js API(fsモジュールの一部の関数など)が、互換性のないパスを持つファイルURLに遭遇しました。パスが使用できるかどうかを決定するための正確なセマンティクスはプラットフォームに依存します。
スローされたエラーオブジェクトには、無効なfile: URLのURLオブジェクトを含むinputプロパティが含まれています。
ERR_INVALID_HANDLE_TYPE#
サポートされていない「ハンドル」をIPC通信チャネル経由で子プロセスに送信しようとしました。詳細については、subprocess.send()およびprocess.send()を参照してください。
ERR_INVALID_SYNC_FORK_INPUT#
Buffer、TypedArray、DataView、またはstringが、非同期フォークへの標準入力として提供されました。詳細については、child_processモジュールのドキュメントを参照してください。
ERR_INVALID_THIS#
Node.jsのAPI関数が互換性のないthis値で呼び出されました。
const urlSearchParams = new URLSearchParams('foo=bar&baz=new');
const buf = Buffer.alloc(1);
urlSearchParams.has.call(buf, 'foo');
// Throws a TypeError with code 'ERR_INVALID_THIS'
ERR_INVALID_TUPLE#
WHATWGのURLSearchParamsコンストラクタに提供されたiterable内の要素が[name, value]のタプルを表していませんでした。つまり、要素がイテラブルでないか、または正確に2つの要素で構成されていない場合です。
ERR_INVALID_URL#
WHATWGのURLコンストラクタまたはレガシーなurl.parse()に、解析するために無効なURLが渡されました。スローされたエラーオブジェクトは通常、解析に失敗したURLを含む追加のプロパティ'input'を持っています。
ERR_INVALID_URL_SCHEME#
特定の目的のために、互換性のないスキーム(プロトコル)のURLを使用しようとしました。これはfsモジュールのWHATWG URL APIサポート('file'スキームのURLのみを受け入れる)でのみ使用されますが、将来的には他のNode.js APIでも使用される可能性があります。
ERR_MESSAGE_TARGET_CONTEXT_UNAVAILABLE#
MessagePortに投稿されたメッセージは、ターゲットのvm Contextでデシリアライズできませんでした。現時点ではすべてのNode.jsオブジェクトが任意のコンテキストで正常にインスタンス化できるわけではなく、postMessage()を使用してそれらを転送しようとすると、受信側で失敗する可能性があります。
ERR_MISSING_ARGS#
Node.js APIの必須引数が渡されませんでした。これはAPI仕様への厳密な準拠のためだけに使用されます(一部のケースではfunc(undefined)は受け入れられますがfunc()は受け入れられません)。ほとんどのネイティブNode.js APIでは、func(undefined)とfunc()は同じように扱われ、代わりにERR_INVALID_ARG_TYPEエラーコードが使用されることがあります。
ERR_MISSING_PLATFORM_FOR_WORKER#
このNode.jsインスタンスで使用されているV8プラットフォームは、Workerの作成をサポートしていません。これは、Workerに対するエンベッダーサポートの欠如が原因です。特に、このエラーは標準ビルドのNode.jsでは発生しません。
ERR_MODULE_NOT_FOUND#
import操作を試みているとき、またはプログラムのエントリポイントをロードしているときに、ECMAScriptモジュールローダーによってモジュールファイルが解決できませんでした。
ERR_MULTIPLE_CALLBACK#
コールバックが複数回呼び出されました。
クエリは成功するか失敗するかのどちらかであり、両方同時にはありえないため、コールバックはほとんどの場合一度だけ呼び出されることを意図しています。後者はコールバックを複数回呼び出すことで可能になります。
ERR_NAPI_INVALID_DATAVIEW_ARGS#
napi_create_dataview()の呼び出し中に、指定されたoffsetがデータビューの範囲外であったか、またはoffset + lengthが指定されたbufferの長さを超えていました。
ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT#
napi_create_typedarray()の呼び出し中に、提供されたoffsetが要素サイズの倍数ではありませんでした。
ERR_NAPI_INVALID_TYPEDARRAY_LENGTH#
napi_create_typedarray()の呼び出し中に、(length * size_of_element) + byte_offsetが指定されたbufferの長さを超えていました。
ERR_NO_TYPESCRIPT#
ネイティブTypeScriptサポートを必要とする機能を使用しようとしましたが、Node.jsはTypeScriptサポート付きでコンパイルされていませんでした。
ERR_PACKAGE_PATH_NOT_EXPORTED#
package.jsonの"exports"フィールドが、要求されたサブパスをエクスポートしていません。エクスポートはカプセル化されているため、エクスポートされていないプライベートな内部モジュールは、絶対URLを使用しない限り、パッケージ解決を通じてインポートすることはできません。
ERR_PARSE_ARGS_INVALID_OPTION_VALUE#
strictがtrueに設定されている場合、util.parseArgs()によってスローされます。<boolean>型のオプションに<string>値が提供された場合、または<string>型のオプションに<boolean>値が提供された場合です。
ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL#
util.parseArgs()によってスローされます。位置引数が提供され、allowPositionalsがfalseに設定されている場合です。
ERR_PARSE_ARGS_UNKNOWN_OPTION#
strictがtrueに設定されている場合、util.parseArgs()によってスローされます。引数がoptionsで設定されていない場合です。
ERR_PROTO_ACCESS#
Object.prototype.__proto__へのアクセスは--disable-proto=throwを使用して禁止されています。オブジェクトのプロトタイプを取得および設定するには、Object.getPrototypeOfおよびObject.setPrototypeOfを使用する必要があります。
ERR_REQUIRE_ASYNC_MODULE#
ESモジュールをrequire()しようとすると、そのモジュールが非同期であることが判明しました。つまり、トップレベルawaitを含んでいます。
トップレベルawaitがどこにあるかを確認するには、--experimental-print-required-tlaを使用します(これにより、トップレベルawaitを探す前にモジュールが実行されます)。
ERR_REQUIRE_CYCLE_MODULE#
ESモジュールをrequire()しようとすると、CommonJSからESMまたはESMからCommonJSへのエッジが即時の循環に参加します。ESモジュールは評価中に再度評価できないため、これは許可されていません。
循環を避けるためには、循環に関与するrequire()呼び出しをESモジュール(createRequire()経由)またはCommonJSモジュールのトップレベルで行わず、内部関数で遅延して行う必要があります。
ERR_REQUIRE_ESM#
ESモジュールをrequire()しようとしました。
require()が同期ESモジュールの読み込みをサポートするようになったため、このエラーは非推奨になりました。require()がトップレベルのawaitを含むESモジュールに遭遇した場合、代わりにERR_REQUIRE_ASYNC_MODULEをスローします。
ERR_SERVER_ALREADY_LISTEN#
net.Serverが既にリッスンしているときにserver.listen()メソッドが呼び出されました。これはHTTP、HTTPS、およびHTTP/2のServerインスタンスを含む、すべてのnet.Serverのインスタンスに適用されます。
ERR_SERVER_NOT_RUNNING#
net.Serverが実行されていないときにserver.close()メソッドが呼び出されました。これはHTTP、HTTPS、およびHTTP/2のServerインスタンスを含む、すべてのnet.Serverのインスタンスに適用されます。
ERR_SINGLE_EXECUTABLE_APPLICATION_ASSET_NOT_FOUND#
アセットを識別するためにキーが単一実行可能アプリケーションAPIに渡されましたが、一致するものが見つかりませんでした。
ERR_SOCKET_BAD_BUFFER_SIZE#
dgram.createSocket()のrecvBufferSizeまたはsendBufferSizeオプションに無効な(負の)サイズが渡されました。
ERR_SOCKET_CLOSED_BEFORE_CONNECTION#
接続中のソケットで net.Socket.write() を呼び出し、接続が確立される前にソケットが閉じられた場合に発生します。
ERR_SOCKET_CONNECTION_TIMEOUT#
ファミリー自動選択アルゴリズムを使用している際に、ソケットが許可されたタイムアウト内にDNSから返されたどのアドレスにも接続できませんでした。
ERR_SOURCE_PHASE_NOT_DEFINED#
指定されたモジュールインポートは、ソースフェーズインポート構文import source x from 'x'またはimport.source(x)に対するソースフェーズインポート表現を提供していません。
ERR_STREAM_PREMATURE_CLOSE#
stream.finished()とstream.pipeline()によって返されるエラーで、ストリームまたはパイプラインが明示的なエラーなしに正常に終了しなかった場合に発生します。
ERR_STREAM_WRAP#
文字列デコーダーがソケットに設定されている場合、またはデコーダーがobjectModeである場合に、中断を防ぎます。
const Socket = require('node:net').Socket;
const instance = new Socket();
instance.setEncoding('utf8');
ERR_SYSTEM_ERROR#
Node.jsプロセス内で不特定または非特定のシステムエラーが発生しました。エラーオブジェクトには、追加の詳細情報を持つerr.infoオブジェクトプロパティがあります。
ERR_TEST_FAILURE#
このエラーは失敗したテストを表します。失敗に関する追加情報はcauseプロパティを介して利用できます。failureTypeプロパティは、失敗が発生したときにテストが何をしていたかを指定します。
ERR_TLS_ALPN_CALLBACK_INVALID_RESULT#
このエラーは、ALPNCallbackがクライアントによって提供されたALPNプロトコルのリストにない値を返したときにスローされます。
ERR_TLS_ALPN_CALLBACK_WITH_PROTOCOLS#
このエラーは、TLSオプションにALPNProtocolsとALPNCallbackの両方が含まれている場合にTLSServerを作成するときにスローされます。これらのオプションは相互に排他的です。
ERR_TLS_CERT_ALTNAME_FORMAT#
このエラーは、ユーザーが提供したsubjectaltnameプロパティがエンコーディングルールに違反した場合にcheckServerIdentityによってスローされます。Node.js自体が生成する証明書オブジェクトは常にエンコーディングルールに準拠しており、このエラーを引き起こすことはありません。
ERR_TLS_DH_PARAM_SIZE#
TLSの使用中に、Diffie-Hellman(DH)鍵合意プロトコルに提供されたパラメータが小さすぎます。脆弱性を避けるため、デフォルトでは鍵長は1024ビット以上でなければなりませんが、より強力なセキュリティのためには2048ビット以上を使用することが強く推奨されます。
ERR_TLS_PROTOCOL_VERSION_CONFLICT#
TLSプロトコルのminVersionまたはmaxVersionを設定しようとすると、secureProtocolを明示的に設定しようとする試みと競合します。どちらか一方のメカニズムを使用してください。
ERR_TRACE_EVENTS_UNAVAILABLE#
Node.jsが--without-v8-platformフラグ付きでコンパイルされたため、node:trace_eventsモジュールをロードできませんでした。
ERR_TRAILING_JUNK_AFTER_STREAM_END#
圧縮ストリームの終端後に余分なデータが見つかりました。このエラーは、圧縮ストリームの終端後に予期しない余分なデータが検出された場合(例えば、zlibまたはgzipの解凍中)にスローされます。
ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET#
process.setUncaughtExceptionCaptureCallback()が、最初にコールバックをnullにリセットせずに2回呼び出されました。
このエラーは、別のモジュールから登録されたコールバックを誤って上書きするのを防ぐために設計されています。
ERR_UNKNOWN_BUILTIN_MODULE#
通常はユーザーコードによってトリガーされるべきではない、特定の種類の内部Node.jsエラーを識別するために使用されます。このエラーのインスタンスは、Node.jsバイナリ自体の内部バグを指しています。
ERR_UNSUPPORTED_DIR_IMPORT#
ディレクトリURLのimportはサポートされていません。代わりに、パッケージをその名前で自己参照し、package.jsonファイルの"exports"フィールドでカスタムサブパスを定義してください。
import './'; // unsupported
import './index.js'; // supported
import 'package-name'; // supported
ERR_UNSUPPORTED_RESOLVE_REQUEST#
無効なモジュールリファラを解決しようとしました。これは、次のいずれかでインポートまたはimport.meta.resolve()を呼び出した場合に発生する可能性があります。
try {
// Trying to import the package 'bare-specifier' from a `data:` URL module:
await import('data:text/javascript,import "bare-specifier"');
} catch (e) {
console.log(e.code); // ERR_UNSUPPORTED_RESOLVE_REQUEST
}
ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX#
提供されたTypeScriptの構文はサポートされていません。これは、型ストリッピングによる変換を必要とするTypeScript構文を使用している場合に発生する可能性があります。
ERR_VALID_PERFORMANCE_ENTRY_TYPE#
Performance Timing API (perf_hooks) の使用中に、有効なパフォーマンスエントリタイプが見つかりませんでした。
ERR_VM_MODULE_ALREADY_LINKED#
リンクしようとしたモジュールは、以下のいずれかの理由によりリンク対象ではありません。
- すでにリンクされている (
linkingStatusが'linked') - リンク中である (
linkingStatusが'linking') - このモジュールのリンクに失敗した (
linkingStatusが'errored')
ERR_VM_MODULE_DIFFERENT_CONTEXT#
リンカー関数から返されるモジュールが、親モジュールとは異なるコンテキストのものです。リンクされたモジュールは同じコンテキストを共有しなければなりません。
ERR_WEBASSEMBLY_RESPONSE#
WebAssembly.compileStreaming または WebAssembly.instantiateStreaming に渡された Response は、有効な WebAssembly レスポンスではありません。
ERR_WORKER_MESSAGING_ERRORED#
postMessageToThread() 経由で送信されたメッセージの処理中に、宛先のスレッドがエラーをスローしました。
ERR_WORKER_MESSAGING_FAILED#
postMessageToThread() で要求されたスレッドが無効であるか、workerMessage リスナーがありません。
ERR_WORKER_MESSAGING_SAME_THREAD#
postMessageToThread() で要求されたスレッドIDは、現在のスレッドIDです。
ERR_WORKER_MESSAGING_TIMEOUT#
postMessageToThread() 経由のメッセージ送信がタイムアウトしました。
HPE_CHUNK_EXTENSIONS_OVERFLOW#
チャンク拡張に対して多すぎるデータが受信されました。悪意のある、または設定が不適切なクライアントから保護するために、16KiB を超えるデータが受信された場合、このコードを持つ Error が発生します。
HPE_HEADER_OVERFLOW#
HTTPヘッダーデータが多すぎました。悪意のある、または設定が不適切なクライアントから保護するために、maxHeaderSize を超える HTTP ヘッダーデータが受信された場合、HTTP パースはリクエストやレスポンスオブジェクトが作成されることなく中止され、このコードを持つ Error が発生します。
HPE_UNEXPECTED_CONTENT_LENGTH#
サーバーが Content-Length ヘッダーと Transfer-Encoding: chunked の両方を送信しています。
Transfer-Encoding: chunked は、サーバーが動的に生成されるコンテンツのために HTTP 持続的接続を維持することを可能にします。この場合、Content-Length HTTP ヘッダーは使用できません。
Content-Length または Transfer-Encoding: chunked のいずれかを使用してください。
レガシーな Node.js エラーコード#
ERR_CRYPTO_HASH_DIGEST_NO_UTF16#
hash.digest() で UTF-16 エンコーディングが使用されました。hash.digest() メソッドは encoding 引数を渡すことができ、これによりメソッドは Buffer ではなく文字列を返しますが、UTF-16 エンコーディング (例: ucs や utf16le) はサポートされていません。
ERR_CRYPTO_SCRYPT_INVALID_PARAMETER#
互換性のないオプションの組み合わせが crypto.scrypt() または crypto.scryptSync() に渡されました。新しいバージョンの Node.js では、他の API と一貫性のあるエラーコード ERR_INCOMPATIBLE_OPTION_PAIR が代わりに使用されます。
ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND#
HTTP/2 情報ヘッダーは、Http2Stream.prototype.respond() メソッドを呼び出す*前*にのみ送信されなければなりません。
ERR_MANIFEST_ASSERT_INTEGRITY#
リソースを読み込もうとしましたが、そのリソースがポリシーマニフェストで定義された整合性と一致しませんでした。詳細については、ポリシーマニフェストのドキュメントを参照してください。
ERR_MANIFEST_DEPENDENCY_MISSING#
リソースを読み込もうとしましたが、そのリソースは読み込みを試みた場所からの依存関係としてリストされていませんでした。詳細については、ポリシーマニフェストのドキュメントを参照してください。
ERR_MANIFEST_INTEGRITY_MISMATCH#
ポリシーマニフェストを読み込もうとしましたが、マニフェストには互いに一致しないリソースの複数のエントリがありました。このエラーを解決するには、マニフェストエントリを更新して一致させてください。詳細については、ポリシーマニフェストのドキュメントを参照してください。
ERR_MANIFEST_INVALID_RESOURCE_FIELD#
ポリシーマニフェストのリソースに、フィールドのいずれかに無効な値がありました。このエラーを解決するには、マニフェストエントリを更新して一致させてください。詳細については、ポリシーマニフェストのドキュメントを参照してください。
ERR_MANIFEST_INVALID_SPECIFIER#
ポリシーマニフェストのリソースに、依存関係マッピングのいずれかに無効な値がありました。このエラーを解決するには、マニフェストエントリを更新して一致させてください。詳細については、ポリシーマニフェストのドキュメントを参照してください。
ERR_MANIFEST_PARSE_POLICY#
ポリシーマニフェストを読み込もうとしましたが、マニフェストを解析できませんでした。詳細については、ポリシーマニフェストのドキュメントを参照してください。
ERR_MANIFEST_UNKNOWN_ONERROR#
ポリシーマニフェストが読み込まれましたが、その "onerror" の動作に不明な値がありました。詳細については、ポリシーマニフェストのドキュメントを参照してください。
ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST#
このエラーコードは Node.js v15.0.0 で ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST に置き換えられました。これは、他の種類の転送可能オブジェクトも存在するようになったため、もはや正確ではないためです。
ERR_MISSING_TRANSFERABLE_IN_TRANSFER_LIST#
transferList 引数に明示的にリストされる必要があるオブジェクトが postMessage() 呼び出しに渡されたオブジェクト内にありますが、その呼び出しの transferList には含まれていません。通常、これは MessagePort です。
Node.js v15.0.0 より前のバージョンでは、ここで使用されていたエラーコードは ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST でした。しかし、転送可能なオブジェクトタイプのセットは、MessagePort 以外のより多くのタイプをカバーするように拡張されました。
ERR_NAPI_TSFN_START_IDLE_LOOP#
メインスレッドでは、スレッドセーフな関数に関連付けられたキューからアイドルループ内で値が削除されます。このエラーは、ループを開始しようとしたときにエラーが発生したことを示します。
ERR_NO_LONGER_SUPPORTED#
Buffer.write(string, encoding, offset[, length]) のように、サポートされていない方法で Node.js API が呼び出されました。
ERR_STDERR_CLOSE#
process.stderr ストリームを閉じようとしました。設計上、Node.js はユーザーコードによる stdout または stderr ストリームのクローズを許可していません。
ERR_STDOUT_CLOSE#
process.stdout ストリームを閉じようとしました。設計上、Node.js はユーザーコードによる stdout または stderr ストリームのクローズを許可していません。
ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER#
シリアライズ中に、JavaScript エンジンまたは Node.js によってメモリが管理されていない SharedArrayBuffer が検出されました。このような SharedArrayBuffer はシリアライズできません。
これは、ネイティブアドオンが「外部化」モードで SharedArrayBuffer を作成するか、既存の SharedArrayBuffer を外部化モードにした場合にのみ発生する可能性があります。
ERR_UNKNOWN_STDIN_TYPE#
不明な stdin ファイルタイプで Node.js プロセスを起動しようとしました。このエラーは通常、Node.js 自体のバグを示しますが、ユーザーコードがそれを引き起こす可能性もあります。
ERR_UNKNOWN_STREAM_TYPE#
不明な stdout または stderr ファイルタイプで Node.js プロセスを起動しようとしました。このエラーは通常、Node.js 自体のバグを示しますが、ユーザーコードがそれを引き起こす可能性もあります。