Ho avuto esattamente la stessa domanda. Ho appena trovato these articles che spiega dettagliatamente come funziona, il completo processo di gestione delle eccezioni, incluso lo scopo esatto della funzione di personalità e un'implementazione passo-passo.
Per il gusto di avere una risposta su SO, ecco un breve riassunto del comportamento personalità quando si verifica un'eccezione (ma si dovrebbe davvero guardare i 18 articoli che questo ragazzo ha scritto su questo!):
Innanzitutto, verrà chiamato una volta per ogni frame dello stack (fase di ricerca) e deve restituire un valore (da un'enumerazione) che indica di rilassarsi se il frame dello stack corrente è in grado di rilevare l'eccezione. Si prevede che la personalità utilizzi un set specifico di tabelle situato alla fine della funzione per recuperare queste informazioni.
Se il frame dello stack può rilevare un'eccezione, la personalità verrà chiamata una seconda volta con un diverso argomento actions
(fase di pulitura).
fonte
2013-05-20 22:12:01