O catch-construção tem um parâmetro. O argumento para a expressão tiro deve ser do mesmo tipo que o parâmetro da construção de captura. Você é o único que decide sobre o tipo de objeto do parâmetro, que é o mesmo que o tipo de objeto do argumento. O argumento da expressão lance pode ser um literal ou um identificador. Você é quem decide sobre isso. Você toma essas decisões, dependendo da natureza do erro e de como você deseja lidar com o erro. O catch-bloco deve seguir imediatamente o bloco try em sua digitação, como na sintaxe acima.
O código anterior é re-escrito usando o try /catch construir a seguinte: #include using namespace std; int main () {int numerador = 8; int denominador = 2; try {if (denominador = 0!) {resposta int = numerador /denominador; } else {cout jogar 0; }} Catch (int e) {if (e == 0) cout} return 0; } Leia o código acima, se você não tiver feito isso. Em muitos casos, o bloco try tem um equivalente se-condição cujo bloco será executado se a condição não detectar o erro.
Se a condição detecta o erro, o bloco se não será executado, ea outra parte vai lançar a exceção; que é a outra parte irá chamar o bloco catch enviar o argumento da expressão lance a ele. O bloco catch usa o argumento para exibir uma mensagem de erro apropriada para o usuário. Isto é o que acontece em muitos casos. Os erros não são normalmente tratadas no verdadeiro sentido da palavra; Normalmente uma mensagem de erro é enviada para o utilizador, se um construir-no bloco de teste evita que o erro de facto ocorre.
Após esta execução, o programa continua em sequência, a partir da construção try /catch; e não há terminação de programa mesmo que foi detectado um erro. Experimente o código acima. Na inicialização do denominador, acima, substitua o operando direito com 0 e testar o código novamente. Agora o bloco try pode realmente ter um if /else construir com muitos lances. O bloco catch pode correspondentemente ter if /else c