KIT

SolanaError

封装了错误的堆栈跟踪、一个特定于 Solana 的数字代码(指示发生了什么错误),以及可选的上下文(如果代码指示的错误类型支持)。

继承自

类型参数

类型参数默认类型
TErrorCode extends SolanaErrorCodeSolanaErrorCode

构造函数

Constructor

new SolanaError<TErrorCode>(...__namedParameters): SolanaError<TErrorCode>

参数

参数类型
...__namedParametersSolanaErrorContext[TErrorCode] extends undefined ? [TErrorCode, ErrorOptions] : [TErrorCode, SolanaErrorContext[TErrorCode] & undefined | ErrorOptions]

返回值

SolanaError<TErrorCode>

覆盖

Error.constructor

属性

属性修饰符类型描述覆盖继承自
cause?readonlyTErrorCode extends -32002 ? SolanaError<SolanaErrorCode> : unknown指示此 SolanaError 的根本原因(如果存在)。例如,事务错误可能有一个指令错误作为其根本原因。在这种情况下,您将能够在事务错误中将指令错误作为 cause 访问。Error.cause-
contextreadonlyReadonly<{ -32001: object & object; -32002: Omit<RpcSimulateTransactionResult, "err"> & object; -32003: object & object; -32004: object & object; -32005: object & object; -32006: object & object; -32007: object & object; -32008: object & object; -32009: object & object; -32010: object & object; -32011: object & object; -32012: object & object; -32013: object & object; -32014: object & object; -32015: object & object; -32016: object & object; -32600: object & object; -32601: object & object; -32602: object & object; -32603: object & object; -32700: object & object; 1: object & object; 10: object & object; 2: object & object; 2800000: object & object; 2800001: object & object; 2800002: object & object; 2800003: object & object; 2800004: object & object; 2800005: object & object; 2800006: object & object; 2800007: object & object; 2800008: object & object; 2800009: object & object; 2800010: object & object; 3: object & object; 3230000: object & object; 32300001: object & object; 3230002: object & object; 3230003: object & object; 3230004: object & object; 3610000: object & object; 3610001: object & object; 3610002: object & object; 3610003: object & object; 3610004: object & object; 3610005: object & object; 3610006: object & object; 3610007: object & object; 3611000: object & object; 3704000: object & object; 3704001: object & object; 3704002: object & object; 3704003: object & object; 3704004: object & object; 4: object & object; 4128000: object & object; 4128001: object & object; 4128002: object & object; 4615000: object & object & object; 4615001: object & object; 4615002: object & object; 4615003: object & object; 4615004: object & object; 4615005: object & object; 4615006: object & object; 4615007: object & object; 4615008: object & object; 4615009: object & object; 4615010: object & object; 4615011: object & object; 4615012: object & object; 4615013: object & object; 4615014: object & object; 4615015: object & object; 4615016: object & object; 4615017: object & object; 4615018: object & object; 4615019: object & object; 4615020: object & object; 4615021: object & object; 4615022: object & object; 4615023: object & object; 4615024: object & object; 4615025: object & object; 4615026: object & object & object; 4615027: object & object; 4615028: object & object; 4615029: object & object; 4615030: object & object; 4615031: object & object; 4615032: object & object; 4615033: object & object; 4615034: object & object; 4615035: object & object; 4615036: object & object; 4615037: object & object; 4615038: object & object; 4615039: object & object; 4615040: object & object; 4615041: object & object; 4615042: object & object; 4615043: object & object; 4615044: object & object; 4615045: object & object & object; 4615046: object & object; 4615047: object & object; 4615048: object & object; 4615049: object & object; 4615050: object & object; 4615051: object & object; 4615052: object & object; 4615053: object & object; 4615054: object & object; 5: object & object; 5508000: object & object; 5508001: object & object; 5508002: object & object; 5508003: object & object; 5508004: object & object; 5508005: object & object; 5508006: object & object; 5508007: object & object; 5508008: object & object; 5508009: object & object; 5508010: object & object; 5508011: object & object; 5663000: object & object; 5663001: object & object; 5663002: object & object; 5663003: object & object; 5663004: object & object; 5663005: object & object; 5663006: object & object; 5663007: object & object; 5663008: object & object; 5663009: object & object; 5663010: object & object; 5663011: object & object; 5663012: object & object; 5663013: object & object; 5663014: object & object; 5663015: object & object; 5663016: object & object; 5663017: object & object; 5663018: object & object; 5663019: object & object; 5663020: object & object; 6: object & object; 7: object & object; 7050000: object & object; 7050001: object & object; 7050002: object & object; 7050003: object & object; 7050004: object & object; 7050005: object & object; 7050006: object & object; 7050007: object & object; 7050008: object & object; 7050009: object & object; 7050010: object & object; 7050011: object & object; 7050012: object & object; 7050013: object & object; 7050014: object & object; 7050015: object & object; 7050016: object & object; 7050017: object & object; 7050018: object & object; 7050019: object & object; 7050020: object & object; 7050021: object & object; 7050022: object & object; 7050023: object & object; 7050024: object & object; 7050025: object & object; 7050026: object & object; 7050027: object & object; 7050028: object & object; 7050029: object & object; 7050030: object & object; 7050031: object & object; 7050032: object & object; 7050033: object & object; 7050034: object & object; 7050035: object & object; 7050036: object & object; 8: object & object; 8078000: object & object; 8078001: object & object; 8078002: object & object; 8078003: object & object; 8078004: object & object; 8078005: object & object; 8078006: object & object; 8078007: object & object; 8078008: object & object; 8078009: object & object; 8078010: object & object; 8078011: object & object; 8078012: object & object; 8078013: object & object; 8078014: object & object; 8078015: object & object; 8078016: object & object; 8078017: object & object; 8078018: object & object; 8078019: object & object; 8078020: object & object; 8078021: object & object; 8078022: object & object; 8100000: object & object; 8100001: object & object; 8100002: object & object; 8100003: object & object; 8190000: object & object; 8190001: object & object; 8190002: object & object; 8190003: object & object; 8190004: object & object; 9: object & object; 9900000: object & object; 9900001: object & object; 9900002: object & object; 9900003: object & object; 9900004: object & object; }>[TErrorCode]包含可以帮助理解或从 SolanaError 中恢复的上下文。--
messagepublicstring--Error.message
namepublicstring--Error.name
stack?publicstring--Error.stack
stackTraceLimitstaticnumberError.stackTraceLimit 属性指定堆栈跟踪收集的堆栈帧数(无论是由 new Error().stack 还是 Error.captureStackTrace(obj) 生成)。默认值为 10,但可以设置为任何有效的 JavaScript 数字。更改将影响在值更改捕获的任何堆栈跟踪。如果设置为非数字值或设置为负数,则堆栈跟踪将不捕获任何帧。-Error.stackTraceLimit

方法

captureStackTrace()

static captureStackTrace(targetObject, constructorOpt?): void

targetObject 上创建一个 .stack 属性,该属性在访问时返回一个字符串,表示调用 Error.captureStackTrace() 的代码中的位置。

const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack;  // 类似于 `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;
 
  // 捕获函数 b 之上的堆栈跟踪
  // Capture the stack trace above function b
  Error.captureStackTrace(error, b); // 堆栈跟踪中不包括函数 c 和 b
  // Neither function c, nor b is included in the stack trace
  throw error;
}
 
a();

参数

参数类型
targetObjectobject
constructorOpt?Function

返回值

void

继承自

Error.captureStackTrace


prepareStackTrace()

static prepareStackTrace(err, stackTraces): any

参数

参数类型
errError
stackTracesCallSite[]

返回值

any

参考

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

继承自

Error.prepareStackTrace

On this page