Enums de Errores Personalizados
Los enums de errores personalizados traducen fallos de negocio a códigos estables u32. Anchor los publica en el IDL; los programas nativos deberían distribuir JSON equivalente para los clientes de @solana/kit 7.0.0.
Busca en todas las páginas de la documentación
Los enums de errores personalizados traducen fallos de negocio a códigos estables u32. Anchor los publica en el IDL; los programas nativos deberían distribuir JSON equivalente para los clientes de @solana/kit 7.0.0.
#[repr(u32)]
pub enum VaultError {
InsufficientFunds = 6000,
SlippageExceeded = 6001,
}Cuándo usar esto:
#[error_code]
pub enum Error {
#[msg("Fondos insuficientes")]
InsufficientFunds,
#[msg("Deslizamiento excedido")]
SlippageExceeded,
}Lo que esto demuestra:
Msg son pistas fuera de la cadena.Los clientes decodifican el nombre + código.
return Err(Error::InsufficientFunds.into());msg - Las cadenas msg detalladas son públicas. Solución: Texto genérico para el usuario fuera de la cadena.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
Solo ProgramError incorporado | Programas internos | UX |
| Errores de cadena | No en cadena | N/A |
| Eventos para fallos | Herramienta incorrecta | Usar errores |
Metadatos para IDL.
Escribir a mano o con Codama.
Mapear código a idioma fuera de la cadena.
Devuelve el mismo código personalizado.
Puede ver el código del llamador en los logs.
Límite práctico menor.
Alojar pruebas de configuración.
Todas las ramas devuelven Err, no panic.
Convención de Anchor.
Tupla de ID de programa + código.
Etiquetar lanzamientos.
Ayudantes de @solana/kit 7.0.0.
require! - Errores de AnchorVersiones de Stack: Esta página fue 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, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026