RefCell esegue i controlli del borrow checker a runtime anziché a tempo di compilazione: invocare '.borrow_mut()' mentre è attivo un prestito immutabile '.borrow()' genera panic immediato.
PANIC_REFCELL_BORROW
→
L'errore a runtime compare quando si tenta di richiedere un prestito immutabile o un secondo prestito mutabile su una RefCell che è già attualmente concessa in prestito esclusivo mutabile.
PANIC_REFCELL_MUT_BORROW
→
Nelle compilazioni di debug Rust include controlli di overflow per le operazioni intere che generano panic immediato se un'addizione o moltiplicazione supera il valore massimo del tipo; si risolve con i metodi wrapping_* o saturating_*.
PANIC_OVERFLOW
→
In Rust le divisioni intere per zero generano un panic immediato del thread a runtime, a differenza delle divisioni floating-point che restituiscono 'inf' o 'NaN'.
PANIC_DIV_ZERO
→
L'errore è tra i panic a runtime più frequenti nei principianti: chiamare '.unwrap()' su un'Option senza gestire il caso in cui il valore ritornato sia 'None'; si risolve con pattern matching 'if let', 'match' o '?''.
PANIC_UNWRAP_NONE
→
Il panic a runtime si verifica quando si invoca '.unwrap()' o '.expect()' su un'istanza di Result contenente un errore (Err) anziché propagarlo con l'operatore '?' o gestirlo formalmente.
PANIC_UNWRAP_ERR
→
L'allocazione di un Vec o String con una capacità predeterminata ('Vec::with_capacity(n)') fallisce con un panic se la moltiplicazione tra elementi e 'sizeof(T)' supera 'isize::MAX' byte.
PANIC_CAPACITY_OVERFLOW
→
Se un distruttore (Drop) lancia un secondo panic mentre il runtime di Rust sta già effettuando lo stack unwinding per un panic precedente, il processo viene terminato forzatamente senza possibilità di recupero.
PANIC_DOUBLE_PANIC_ABORT
→