Solana Anchor程序调用报错:自定义程序错误0xc含义及查询方式
Solana Anchor程序报错0xc的含义及错误详情获取方法
错误含义
custom program error: 0xc 中的0xc是十六进制错误码,转十进制为12。这是Anchor框架或你的自定义程序抛出的自定义业务错误,说明执行第0条指令时,触发了程序预先定义的错误逻辑(比如参数校验失败、约束条件不满足、权限不足等)。
获取错误详情的途径
- 查看程序的错误枚举定义:在你的Anchor程序中,通过
#[error_code]宏定义的错误枚举里,每个变体都对应一个数值,将0xc转成十进制12后,就能找到对应的错误描述。示例:#[error_code] pub enum MyError { #[msg("账户所有者不匹配")] InvalidOwner = 12, } - 查看程序运行日志:执行
solana program logs命令监听链上日志,或运行anchor test时,控制台会输出更具体的错误信息(比如直接显示错误描述文本)。 - 参考Anchor内置错误码:Anchor框架本身预定义了一批错误码,你可以在本地Anchor依赖库的
anchor_lang/error.rs文件中找到对应的枚举和描述,比如12对应的是ConstraintRaw(通常和原始数据约束相关)。
内容的提问来源于stack exchange,提问作者Charles Liu
相关产品推荐
相关产品推荐

