ProcessError class

在解析或執行程序時產生錯誤。

擷取的輸出是不可枚舉的,因此一般的日誌記錄與序列化不會意外暴露它。

Extends

Error

建構函式

ProcessError(string, ProcessErrorOptions)

造成流程錯誤。

屬性

code

作業系統錯誤代碼或程序退出代碼。

killed

是否該過程被終止。

signal

那個終止過程的信號。

stderr

捕捉標準誤(如有)。

stdout

擷取標準輸出(如有)。

繼承的屬性

message
name
stack
stackTraceLimit

Error.stackTraceLimit 性質指定堆疊追蹤所收集的堆疊幀數(無論是由 new Error().stackError.captureStackTrace(obj)產生)。

預設值為 10 但可設定為任何有效的 JavaScript 編號。 變更會影響 值變更後 擷取的任何堆疊追蹤。

若設定為非數字值或負數值,堆疊追蹤將無法捕捉任何影格。

繼承的方法

captureStackTrace(object, Function)

在 上.stack建立targetObject一個屬性,存取時會回傳一個字串,代表被呼叫的程式碼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();
prepareStackTrace(Error, CallSite[])

請參閱 https://v8.dev/docs/stack-trace-api#customizing-stack-traces

建構函式詳細資料

ProcessError(string, ProcessErrorOptions)

造成流程錯誤。

new ProcessError(message: string, options?: ProcessErrorOptions)

參數

message

string

一個不包含指令參數或輸出的訊息。

options
ProcessErrorOptions

結構化流程失效細節。

屬性詳細資料

code

作業系統錯誤代碼或程序退出代碼。

code: null | string | number

屬性值

null | string | number

killed

是否該過程被終止。

killed: boolean

屬性值

boolean

signal

那個終止過程的信號。

signal: null | Signals

屬性值

null | Signals

stderr

捕捉標準誤(如有)。

stderr: undefined | string | Buffer

屬性值

undefined | string | Buffer

stdout

擷取標準輸出(如有)。

stdout: undefined | string | Buffer

屬性值

undefined | string | Buffer

繼承的屬性詳細資料

message

message: string

屬性值

string

繼承自 Error.message

name

name: string

屬性值

string

繼承自 Error.name

stack

stack?: string

屬性值

string

繼承自 Error.stack

stackTraceLimit

Error.stackTraceLimit 性質指定堆疊追蹤所收集的堆疊幀數(無論是由 new Error().stackError.captureStackTrace(obj)產生)。

預設值為 10 但可設定為任何有效的 JavaScript 編號。 變更會影響 值變更後 擷取的任何堆疊追蹤。

若設定為非數字值或負數值,堆疊追蹤將無法捕捉任何影格。

static stackTraceLimit: number

屬性值

number

繼承自 Error.stackTraceLimit(錯誤.stack追蹤限制)

繼承的方法的詳細資料

captureStackTrace(object, Function)

在 上.stack建立targetObject一個屬性,存取時會回傳一個字串,代表被呼叫的程式碼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();
static function captureStackTrace(targetObject: object, constructorOpt?: Function)

參數

targetObject

object

constructorOpt

Function

繼承自 錯誤.captureStackTrace

prepareStackTrace(Error, CallSite[])

請參閱 https://v8.dev/docs/stack-trace-api#customizing-stack-traces

static function prepareStackTrace(err: Error, stackTraces: CallSite[]): any

參數

err

Error

stackTraces

CallSite[]

傳回

any

繼承自 Error.prepareStackTrace