Informações do MSDN: Aqui
Exceções são semelhantes às interrupções tratadas pela CPU. Quando ocorre uma exceção, seja software ou hardware, o processador interromperá a execução e transferirá o controle para o sistema. O sistema salva o estado do encadeamento atual e as informações da exceção. Em seguida, tenta encontrar um manipulador. Isto é essencialmente como é "pego".
A ordem para encontrar um manipulador é:
- Um depurador anexado ao programa
- Encontrar um manipulador de exceções baseado em quadros (específico do idioma)
- Solicite novamente ao depurador
- Se não estiver sendo depurado, ou se o depurador não lidar com a exceção, o SO fornecerá seu tratamento padrão. Para a maioria das exceções, a ação padrão é chamar ExitProcess.
Se o seu código de modo kernel (sistema operacional), em seguida, ele tenta encontrar um manipulador de exceção. Se não houver uma ou a que estiver disponível não lidar com essa exceção específica, a função ExitWindows será chamada. Brownie aponta se você pode adivinhar o que isso faz.
Em outras palavras, é a sua linguagem de alto nível que lida com exceções, o SO apenas oferece a opção de último recurso.