Tratamento de Exceções em C ++ - Parte 2 Introdução Esta é a parte 2 da minha série, Exception em C ++. Com exceções C ++, que é jogado pela expressão lance é chamado de um operando. Nesta parte da série, vemos como vários operandos pode ser jogado em C ++. Nota: Se você não pode ver o código ou se você acha que alguma coisa está faltando (link quebrado, imagem ausente), apenas contacte-me em [email protected]. Ou seja, contacte-me para o menor problema que você tem sobre o que você está lendo.
Diferentes maneiras de jogar Vários Operandos Um bloco try pode ter várias declarações de lance, e cada declaração jogando um particular (um) operando. A instrução throw também pode jogar uma matriz. Nós olhamos para essas duas maneiras de jogar vários operandos. Vários Demonstrações jogar em um try-bloco Você pode ter várias declarações jogar em um bloco try. O que importa aqui é que o operando de cada instrução throw deve ser de um tipo diferente das outras declarações de lance. Não deve ser o mesmo número de blocos de captura correspondente.
Neste ponto eu tenho que fazer alguns esclarecimentos entre o que aprendemos na parte anterior da série e que estamos aprendendo agora. Se no bloco try, você tem várias declarações lance do mesmo tipo, então você precisa de um bloco catch para todos os lances. No bloco catch-se declarações podem ser usados para selecionar os diferentes valores operando. O que estamos aprendendo agora é esta: Se no bloco try, você tem várias declarações de lance cada um de um tipo diferente, então você precisa correspondente blocos catch para os diferentes tipos.
Cada um destes blocos de captura não precisaria se-declarações para selecionar qualquer valor do operando, porque o critério para um bloco catch para capturar um lance é apenas que o tipo de parâmetro do bloco de captura deve ser o mesmo que o tipo do operando lançada. Aqui, os parâmetros dos blocos catch deve ser de diferentes tipos, cada um correspondendo a um dos instrução throw no bloco try. Cada bloco catch identificou o lance cujo operando é do mesmo tipo como parâmetro. O código a seguir ilustra isso: #include using namespace std; int main () {try {jogue 5; //um int jogar 4.
6; //um duplo (para float) lance 'B'; //um lance char "algum texto"; //uma string} catch (int i) {cout} catch (double d) {cout} catch (char c) {cout} catch (const char * str) {cout} return 0; } Agora isto é importante: Em um bloco try, nenhuma declaração é executado antes do final do bloco try ap