Enums de erro customizados
Enums de erro customizados traduzem falhas de negócio em códigos u32 estáveis. Anchor publica na IDL; programas nativos devem enviar JSON equivalente para clientes @solana/kit 7.0.0.
Busque em todas as páginas da documentação
Enums de erro customizados traduzem falhas de negócio em códigos u32 estáveis. Anchor publica na IDL; programas nativos devem enviar JSON equivalente para clientes @solana/kit 7.0.0.
#[repr(u32)]
pub enum VaultError {
InsufficientFunds = 6000,
SlippageExceeded = 6001,
}Quando usar:
#[error_code]
pub enum Error {
#[msg("Insufficient funds")]
InsufficientFunds,
#[msg("Slippage exceeded")]
SlippageExceeded,
}O que isso demonstra:
Clientes decodificam nome + código.
return Err(Error::InsufficientFunds.into());| Alternativa | Use quando | Não use quando |
|---|---|---|
| Apenas ProgramError built-in | Programas internos | UX |
| Erros String | Não on-chain | N/A |
| Eventos para falhas | Ferramenta errada | Use erros |
Metadados para IDL.
Escreva à mão ou use Codama.
Mapeie código para locale off-chain.
Retorna o mesmo código customizado.
Pode ver código do callee nos logs.
Limite prático menor.
Testes em cfg host.
Todos os branches retornam Err, não panic.
Convenção Anchor.
Tupla program id + código.
Marque releases.
Helpers @solana/kit 7.0.0.
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026