Errores y Registros del Programa
Supervisa fallos y registros de programas en la cadena. Los resultados aparecen en la misma sección: comentarios // en la misma línea cuando son cortos, bloques // multilínea debajo de la muestra cuando no lo son.
Imprime en los registros del programa (costoso, mantenlo escaso).
// msg!("amount={}", amount);
Códigos de error de programa integrados.
// return Err(ProgramError::InvalidAccountData.into());
Anchor require! aborta con un error.
// require!(amount > 0, MyError::ZeroAmount);
Enum #[error_code] para errores tipados.
// #[error_code] pub enum MyError { #[msg("zero")] ZeroAmount }
La simulación devuelve un array de registros.
Mapea códigos personalizados u32 en programas nativos.
// ProgramError::Custom(1)
Error común de firma faltante.
// ProgramError::MissingRequiredSignature
Los fallos de restricciones de Anchor incluyen el nombre de la cuenta.
// Error: ConstraintSeeds / ConstraintHasOne
Registra datos binarios base64.
// sol_log_data(&[bytes])
Prefiere errores tipados sobre solo registros.
// Err(error!(MyError::X))
Los panics abortan; prefiere Result.
// evita unwrap en rutas en cadena
El presupuesto de cómputo excedido falla la tx.
// Program failed: Computational budget exceeded
No registres secretos ni claves privadas completas.
// registra pubkeys y cantidades con cuidado
Error de desajuste de has_one.
Eventos de Anchor para indexadores.
// emit!(MyEvent { ... })
Versiones de Stack: Esta página fue escrita para Agave 4.1.1 , Solana CLI 3.0.10 , Anchor 0.32.1 , Rust 1.91.1 , y @solana/kit 7.0.0 .