Por que c ++ tem um novo mecanismo de erro?

Video: COMO RESOLVER FALHA NA INSTALAÇÃO C++

C ++ usa o mecanismo excepção para erros. O que há de errado com os retornos de erro como Fortran usado para fazer? Fatoriais não pode ser negativo, então você poderia ter dito algo como “Ok, se fatorial() detecta um erro, ele retorna um número negativo. O valor real indica a fonte do problema.”O que há de errado com isso? Isso é como ele foi feito para as idades. ( “Se era bom o suficiente para o vovô ...”)

Infelizmente, vários problemas surgem. Em primeiro lugar, embora seja verdade que o resultado de um fatorial não pode ser negativo, outras funções não têm tanta sorte. Por exemplo, você não pode tomar o log de um número negativo, quer, mas logaritmos pode ser negativo ou positivo. Não há nenhum valor que uma função de logaritmo não pode voltar.

Em segundo lugar, há apenas tanta informação que você pode armazenar em um inteiro. Talvez você pode ter -1 para “argumento é negativo” e -2 para “argumento é muito grande.” Mas, se o argumento é muito grande, você quer saber o que o argumento é porque essa informação pode ajudar a depurar o problema. Não há lugar para armazenar esse tipo de informação.

Video: C++ 2010 Riders of Icarus | Como resolver os erros mfc100u.dll, MVPC100.dll e MSVCR100.dll?

Em terceiro lugar, o processamento de retornos de erro é opcional. Suponha que alguém escreve fatorial() para que ele obedientemente verifica o argumento e retorna um número negativo se o argumento está fora do intervalo. Se uma função que chama fatorial() não verifica o retorno de erro, retornando um valor de erro não faz nenhum bem.



Claro, você pode fazer todos os tipos de ameaças ameaçadoras, como “Você vai verificar seus retornos de erro ou então”, e o programador pode ter a melhor das intenções, mas todos sabem que as pessoas ficam preguiçosos e retornar à sua idade, não formas de verificação de erros.

Video: COMO CONSERTAR? #01 ERRO NA INSTALAÇÃO DO LOL! 2014

Mesmo se você verificar o retorno de erro de fatorial() ou qualquer outra função, o que pode a função de fazer com o erro? Ele provavelmente não pode fazer nada mais do que a produção uma mensagem de erro próprio e retornar outra indicação de erro para o chamador, o que provavelmente faz o mesmo. Muito em breve, há mais código de detecção de erro de código “real” e é tudo misturado.

O mecanismo de exceção aborda estes problemas, removendo o caminho de erro do caminho de código normal. Além disso, exceções fazer tratamento de erros obrigatório. Se a sua função não manipula a exceção lançada, o controle passa-se a cadeia de chamadas de funções até C ++ encontra uma função para manipular o erro.

Video: Tutorial - Como resolver o erro "Microsoft Visual C++ Runtime Library"

Isto também lhe dá a flexibilidade para ignorar os erros que você não pode fazer nada a respeito de qualquer maneira. Apenas as funções que pode realmente lidar com o problema precisa capturar a exceção.


Publicações relacionadas