O que acontece se uma função disparar uma exceção de um tipo não permitido pela especificação de exceção da função?
Passo 1
Belezaaa meus bacanos, espero que estejam bem e prontinhos para estudar um pouco hoje. Nesse último capítulo temos algumas questões para realizar. Estamos aqui então para realizar os exercícios de autoavaliação, que são de extrema importância para que você saiba se tem a teoria afiada. Então vamos nessa!!!
Passo 2
Na seção 24.6 o autor trata sobre as especificações das exceções, e nos deixa bem claro os acontecimentos que nos é questionado. Vamos relembrar
Uma especificação de exceção opcional enumera uma lista de exceções que uma função pode disparar. Uma função só pode disparar exceções dos tipos indicados pela especificação de exceção ou exceções de qualquer tipo derivado desses tipos. Se a função dispara uma exceção que não pertence a um tipo especificado, a função unexpected é chamada e o programa termina.
Uma função sem especificação de exceção pode disparar qualquer exceção. A especificação de exceção vazia throw() indica que uma função não dispara exceções. Se uma função com uma especificação de exceção vazia tentar disparar uma exceção, a função unexpected é chamada.
Passo 3
Sendo assim, podemos resumir que o que acontece é que a função unexpected é chamada.
Resposta
A função unexpected é chamada.