¿Por qué c ++ tiene un nuevo mecanismo de error?

C ++ utiliza el mecanismo de excepción para errores. ¿Qué hay de malo en error vuelve a aparecer como FORTRAN utiliza para hacer? Factoriales no pueden ser negativos, por lo que podría haber dicho algo así como “Está bien, si factorial() detecta un error, devuelve un número negativo. El valor real indica la fuente del problema.”¿Qué hay de malo en eso? Eso es cómo se ha hecho durante siglos. ( “Si era lo suficientemente buena para el abuelo ...”)

Por desgracia, surgen varios problemas. En primer lugar, si bien es cierto que el resultado de un factorial no puede ser negativa, otras funciones no son tan afortunados. Por ejemplo, no se puede tomar el logaritmo de un número negativo o bien, pero logaritmos puede ser negativo o positivo. No hay ningún valor que una función logaritmo no puede regresar.

En segundo lugar, sólo hay tanta información que se puede almacenar en un número entero. Tal vez usted puede tener -1 para “argumento es negativo” y -2 para “argumento es demasiado grande.” Pero, si el argumento es demasiado grande, usted quiere saber lo que el argumento se debe a que la información podría ayudar a depurar el problema. No hay lugar para almacenar ese tipo de información.

Video: El Chisme [Video Oficial] - Reykon ®

En tercer lugar, el procesamiento de las declaraciones de error es opcional. Supongamos que alguien escribe factorial() de modo que diligentemente comprueba el argumento y devuelve un número negativo si el argumento está fuera de rango. Si una función que llama factorial() no comprueba el retorno de error, devuelve un valor de error no hace ningún bien.

Claro, usted puede hacer todo tipo de amenazas amenazantes, tales como “Va a revisar sus declaraciones de error o de lo contrario,” y el programador puede tener las mejores intenciones, pero todos sabemos que la gente da pereza y regresar a su edad, no de comprobación de errores maneras.

Incluso si lo hace comprobar el retorno de error de factorial() o cualquier otra función, lo que puede hacer la función con el error? Es probable que no puede hacer nada más que la producción un mensaje de error de su propia y volver otra indicación de error a la persona que llama, lo que probablemente hace lo mismo. Muy pronto, hay más código de detección de errores de código “real” y es todo mezclado.

El mecanismo de excepción aborda estos problemas mediante la eliminación de la ruta de error de la ruta de código normal. Por otra parte, las excepciones hacen obligatorio el tratamiento de errores. Si su función no maneja la excepción lanzada, el control pasa a la cadena de llamadas funciones hasta C ++ encuentra una función para controlar el error.

Video: Solución Al Nuevo Error De Abrir Mundos O Crear MCPE 1.0.5.0 TUTORTIAL

Esto también le da la flexibilidad necesaria para ignorar los errores que no se puede hacer nada al respecto de todos modos. Sólo las funciones que realmente puede manejar el problema tienen que detectar la excepción.

Artículos Relacionados