Diferencia Entre La Excepción Marcada Y La Excepción En Tiempo De Ejecución

Diferencia Entre La Excepción Marcada Y La Excepción En Tiempo De Ejecución
Diferencia Entre La Excepción Marcada Y La Excepción En Tiempo De Ejecución

Vídeo: Diferencia Entre La Excepción Marcada Y La Excepción En Tiempo De Ejecución

Vídeo: Diferencia Entre La Excepción Marcada Y La Excepción En Tiempo De Ejecución
Vídeo: 82. Programación en Java || Tratamiento de Excepciones || Concepto de Excepciones 2024, Abril
Anonim

Excepción marcada frente a excepción en tiempo de ejecución

Las excepciones son tipos especiales de eventos, que pueden perturbar el flujo normal del programa. La excepción de nombre proviene de "evento excepcional". Lanzar una excepción es el proceso de crear un objeto de excepción y entregarlo al sistema en tiempo de ejecución. Cuando el sistema en tiempo de ejecución recibe el objeto de excepción, intentará encontrar a alguien que lo maneje dentro de la pila de llamadas atravesándolo en el orden inverso (en el que se llamaron los métodos). El sistema en tiempo de ejecución tiene éxito si encuentra un método con un controlador de excepciones. El manejador de excepciones es un bloque de código que puede manejar oficialmente dicha excepción. Si el sistema en tiempo de ejecución encuentra un manejador apropiado, pasará el objeto de excepción al manejador. A esto se le llama capturar la excepción. Sin embargo, si no se puede manejar la excepción, el programa terminará. En Java,las excepciones heredan de la clase Throwable. Las excepciones marcadas son excepciones en las que el compilador impone el manejo. Las excepciones en tiempo de ejecución son un tipo de excepciones que el compilador no comprueba.

¿Qué es una excepción marcada?

Las excepciones marcadas son objetos de la clase java.lang.exception o sus subclases (excepto java.lang. RuntimeException y sus subclases). Las excepciones marcadas se “comprueban” en el momento de la compilación. Eso significa que el programador debe detectar o lanzar estas excepciones, o de lo contrario la compilación se quejaría (provocando un error del compilador). Por esta razón, los programadores conocen muy bien muchas excepciones comprobadas. Por ejemplo, IOException y sus subclases son excepciones comprobadas, y cada vez que el programador está tratando de acceder o modificar un archivo, el compilador comprueba para asegurarse de que el programador se encarga de todas las posibles IOExceptions.

¿Qué es una excepción de tiempo de ejecución?

Las excepciones en tiempo de ejecución consisten en java.lang. RuntimeException y todas sus subclases. Teóricamente hablando, tienen el mismo propósito que las excepciones comprobadas, y se pueden lanzar o manejar como una excepción comprobada, pero el compilador no hace cumplir su gestión. Por tanto, las excepciones en tiempo de ejecución pertenecen a la familia de excepciones no comprobadas. NullPointerException, NumberFormatEception, ClassCastException y ArrayIndexOutOfBoundsException son excepciones comunes en tiempo de ejecución en Java.

¿Cuál es la diferencia entre Checked Exception y Runtime Exception?

Aunque tanto las excepciones comprobadas como las excepciones en tiempo de ejecución son una ocurrencia no deseada durante la ejecución de un programa, tienen sus diferencias. El compilador aplica el control de excepciones comprobadas, pero no las excepciones en tiempo de ejecución. Por lo tanto, las excepciones marcadas deben lanzarse o manejarse para que el código se compile, pero no existe tal requisito con respecto a las excepciones en tiempo de ejecución. En consecuencia, las excepciones en tiempo de ejecución pertenecen a la categoría de excepciones no comprobadas junto con los errores.

La desventaja de las excepciones marcadas es que el programador tiene que manejarlo incluso si no sabe cómo hacerlo. Por lo tanto, si el programador simplemente lanza una nueva excepción sin ajustar la original, se perderá el seguimiento de la pila que pertenece a la excepción original. Aquí es donde las excepciones en tiempo de ejecución son útiles. Debido a que todas las excepciones en tiempo de ejecución se pueden manejar en un solo lugar, los programadores pueden escribir menos cantidad de código. Por otro lado, dado que las excepciones marcadas deben detectarse, no hay sorpresa para el programador. Ella siempre sabrá qué excepción marcada podría lanzarse mediante un determinado método. Contrariamente a esto, se pueden lanzar varias excepciones de tiempo de ejecución sin el conocimiento del programador.

Recomendado: