fbpx
Wikipedia

Manejo de excepciones

El manejo de excepciones es una técnica de programación que permite al programador controlar los errores ocasionados durante la ejecución de un programa informático. Cuando ocurre cierto tipo de error, el sistema reacciona ejecutando un fragmento de código que resuelve la situación, por ejemplo retornando un mensaje de error o devolviendo un valor por defecto.

Introducción

Una excepción en términos de lenguaje de programación es la indicación de un problema que ocurre durante la ejecución de un programa. Sin embargo, la palabra excepción se refiere a que este problema ocurre con poca frecuencia generalmente cuando existe algún dato o instrucción que no se apega al funcionamiento del programa por lo que se produce un error. El manejo de excepciones permite al usuario crear aplicaciones tolerantes a fallas y robustas (resistentes a errores) para controlar estas excepciones y que pueda seguir ejecutándose el programa sin verse afectado por el problema. En lenguaje Java estas excepciones pueden manejarse con las clases que extienden el paquete Throwable de manera directa o indirecta,[1]​ pero existen diversos tipos de excepciones y formas para manejarlas.

Uso del manejo de excepciones

El manejo de excepciones ayuda al programador a trasladar el código para manejo de errores de la línea principal de ejecución, además se puede elegir entre manejar todas las excepciones, las de cierto tipo o de las de grupos relacionados, esto hace que la probabilidad de pasar por alto los errores se reduzca y a la vez hace los programas más robustos. Pero es importante utilizar un lenguaje de programación que soporte este manejo, de lo contrario el procesamiento de errores no estará incluido y hará el programa más vulnerable. Este manejo está diseñado para procesar errores que ocurren cuando se ejecuta una instrucción, algunos ejemplos son: desbordamiento aritmético, división entre cero, parámetros inválidos de método y asignación fallida en la memoria. Sin embargo, no está diseñado para procesar problemas con eventos independientes al programa como son pulsar una tecla o clic al mouse.

Las excepciones se dividen en verificadas y no verificadas. Es importante esta división porque el compilador implementa requerimientos de atrapar o declarar para las verificadas lo que hará que se detecten las excepciones automáticamente y de acuerdo al lenguaje de programación utilizado se utilizará un método para corregirlas. Sin embargo para las no verificadas se producirá un error indicando que deben atraparse y declararse. Por eso el programador debe pensar en los problemas que pueden ocurrir cuando se llama a un método y definir excepciones para verificarse cuando sean importantes. Las clases de excepciones pueden derivarse de una superclase común, por lo que con un manejador para atrapar objetos de la superclase, también se pueden atrapar todos los objetos de las subclases de esa clase. Pero también, se pueden atrapar a cada uno de los tipos de las subclases de manera individual si estas requieren ser procesadas diferente.

A cada célula se le conoce como compiladora de distintos.

Limpieza de pila

En ocasiones cuando se lanza una excepción, pero no se atrapa en un enlace específico, la pila de llamadas se limpia y el programa intenta volverlo a atrapar en el siguiente bloque, esto se conoce como limpieza de pila. Este proceso hace que el método en el que no se atrapó la excepción termine, todas sus variables quedan fuera del enlace y el control regresa a la instrucción que originalmente la invocó. La limpieza de pila se repetirá hasta que la excepción pueda ser atrapada porque de lo contrario se producirá un error a la hora de compilar.

Aserciones

Las aserciones ayudan a asegurar la validez del programa al atrapar los errores potenciales e identificar los posibles errores lógicos del desarrollo. Estas pueden escribirse como comentarios para apoyar a la persona que desarrolla el programa. Algunos ejemplos son:

Precondiciones y pos condiciones

Estas características son utilizadas por los programadores para hacer un análisis de lo esperado del programa antes y después de su ejecución. Son importantes porque gracias a ellas se pueden detectar posibles fallas en el programa y corregirlas.

Las precondiciones son verdaderas cuando se invoca a un método, estas describen las características del método y las expectativas que se tienen en el estado actual del programa. Si no se cumplen las precondiciones el comportamiento del método es indefinido por lo que se lanza una excepción que esté preparada o continuar con el programa esperando el error. Las pos condiciones describen las restricciones en el entorno y cualquier efecto secundario del método. Es recomendable escribirlas para saber que esperar en un futuro si es que se hacen modificaciones.

Conclusión

El manejo de excepciones ayuda a lidiar con los errores de una aplicación por medio de la manipulación del código para hacer programas más robustos. Además existen herramientas que ayudan a manejarlas tal es el caso de los bloques try (intentar) que encierran el código que puede lanzar una excepción y los bloques el catch (atrapar) que lidian con las excepciones que surjan. También existen técnicas que el programador utiliza para conocer el posible funcionamiento del programa y detectar los errores que pueda contener.

Ejemplos de código

Java

public class ExcDemo { public static void main(String[] args) { int nums[]=new int[4]; try { System.out.println("Antes de que se genere la excepción."); //generar una excepción de índice fuera de límites nums[7]=10; }catch (ArrayIndexOutOfBoundsException exc){ //Capturando la excepción System.out.println("Índice fuera de los límites!"); } finally { System.out.println("Después de que se genere la excepción."); } } } 

Delphi

procedure TForm1.Button1Click(Sender : TObject); begin try try a := b / c; finally // Este código siempre se ejecuta, independientemente de si ocurre o no una excepción. end; except on e:EZeroDivide do // Manejo de la excepción División por cero. on e:Exception do // Manejo de una excepción "genérica". end; end; 

Pascal

 Var i,X,Y:Entero ' Declaramos las variables a utilizar AdmErr ' Administrar Error Resultado = X \ Y Controlar i ' Controlar si existe (i obtiene el valor de la excepción) Seleccionar i Caso errEntDivCero ' Si i es igual a División a cero. Mensaje("División a cero!") Caso Otro Salir AdmErr FinSeleccionar FinAdmErr ' Fin Administrar Error 

Python

try: result = x / y except ZeroDivisionError: print "division by zero!" else: print "result is", result finally: print "executing finally clause" 

Ada

type T_Matriz is array (Positive range <>, Positive range <>) of Integer; procedure Rellenar_Matriz (Matriz : in T_Matriz; K : in Integer; Q : in Integer); is begin begin Matriz (K,Q) := 3; exception when Constraint_Error => Put_Line ("Las posiciones se salen del rango de la matriz"); end; end Rellenar_Matriz; 

Referencias

  1. (html). Oracle Corporation (en inglés). Archivado desde el original el 25 de noviembre de 2011. Consultado el 29 de febrero de 2020. «The Throwable class is the superclass of all errors and exceptions in the Java language. Only objects that are instances of this class (or one of its subclasses) are thrown by the Java Virtual Machine or can be thrown by the Java throw statement.» 

Enlaces externos

  • .
  • exceptions4c: Una biblioteca de manejo de excepciones para C.
  • Tratamiento de excepciones en Java.
  •   Datos: Q471748

manejo, excepciones, este, artículo, sección, sobre, informática, necesita, wikificado, favor, edítalo, para, cumpla, convenciones, estilo, este, aviso, puesto, julio, 2011, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, es. Este articulo o seccion sobre informatica necesita ser wikificado por favor editalo para que cumpla con las convenciones de estilo Este aviso fue puesto el 23 de julio de 2011 Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 23 de julio de 2011 El manejo de excepciones es una tecnica de programacion que permite al programador controlar los errores ocasionados durante la ejecucion de un programa informatico Cuando ocurre cierto tipo de error el sistema reacciona ejecutando un fragmento de codigo que resuelve la situacion por ejemplo retornando un mensaje de error o devolviendo un valor por defecto Indice 1 Introduccion 1 1 Uso del manejo de excepciones 1 2 Limpieza de pila 1 3 Aserciones 1 4 Conclusion 2 Ejemplos de codigo 2 1 Java 2 2 Delphi 2 3 Pascal 2 4 Python 2 5 Ada 3 Referencias 4 Enlaces externosIntroduccion EditarUna excepcion en terminos de lenguaje de programacion es la indicacion de un problema que ocurre durante la ejecucion de un programa Sin embargo la palabra excepcion se refiere a que este problema ocurre con poca frecuencia generalmente cuando existe algun dato o instruccion que no se apega al funcionamiento del programa por lo que se produce un error El manejo de excepciones permite al usuario crear aplicaciones tolerantes a fallas y robustas resistentes a errores para controlar estas excepciones y que pueda seguir ejecutandose el programa sin verse afectado por el problema En lenguaje Java estas excepciones pueden manejarse con las clases que extienden el paquete Throwable de manera directa o indirecta 1 pero existen diversos tipos de excepciones y formas para manejarlas Uso del manejo de excepciones Editar El manejo de excepciones ayuda al programador a trasladar el codigo para manejo de errores de la linea principal de ejecucion ademas se puede elegir entre manejar todas las excepciones las de cierto tipo o de las de grupos relacionados esto hace que la probabilidad de pasar por alto los errores se reduzca y a la vez hace los programas mas robustos Pero es importante utilizar un lenguaje de programacion que soporte este manejo de lo contrario el procesamiento de errores no estara incluido y hara el programa mas vulnerable Este manejo esta disenado para procesar errores que ocurren cuando se ejecuta una instruccion algunos ejemplos son desbordamiento aritmetico division entre cero parametros invalidos de metodo y asignacion fallida en la memoria Sin embargo no esta disenado para procesar problemas con eventos independientes al programa como son pulsar una tecla o clic al mouse Las excepciones se dividen en verificadas y no verificadas Es importante esta division porque el compilador implementa requerimientos de atrapar o declarar para las verificadas lo que hara que se detecten las excepciones automaticamente y de acuerdo al lenguaje de programacion utilizado se utilizara un metodo para corregirlas Sin embargo para las no verificadas se producira un error indicando que deben atraparse y declararse Por eso el programador debe pensar en los problemas que pueden ocurrir cuando se llama a un metodo y definir excepciones para verificarse cuando sean importantes Las clases de excepciones pueden derivarse de una superclase comun por lo que con un manejador para atrapar objetos de la superclase tambien se pueden atrapar todos los objetos de las subclases de esa clase Pero tambien se pueden atrapar a cada uno de los tipos de las subclases de manera individual si estas requieren ser procesadas diferente A cada celula se le conoce como compiladora de distintos Limpieza de pila Editar En ocasiones cuando se lanza una excepcion pero no se atrapa en un enlace especifico la pila de llamadas se limpia y el programa intenta volverlo a atrapar en el siguiente bloque esto se conoce como limpieza de pila Este proceso hace que el metodo en el que no se atrapo la excepcion termine todas sus variables quedan fuera del enlace y el control regresa a la instruccion que originalmente la invoco La limpieza de pila se repetira hasta que la excepcion pueda ser atrapada porque de lo contrario se producira un error a la hora de compilar Aserciones Editar Las aserciones ayudan a asegurar la validez del programa al atrapar los errores potenciales e identificar los posibles errores logicos del desarrollo Estas pueden escribirse como comentarios para apoyar a la persona que desarrolla el programa Algunos ejemplos son Precondiciones y pos condicionesEstas caracteristicas son utilizadas por los programadores para hacer un analisis de lo esperado del programa antes y despues de su ejecucion Son importantes porque gracias a ellas se pueden detectar posibles fallas en el programa y corregirlas Las precondiciones son verdaderas cuando se invoca a un metodo estas describen las caracteristicas del metodo y las expectativas que se tienen en el estado actual del programa Si no se cumplen las precondiciones el comportamiento del metodo es indefinido por lo que se lanza una excepcion que este preparada o continuar con el programa esperando el error Las pos condiciones describen las restricciones en el entorno y cualquier efecto secundario del metodo Es recomendable escribirlas para saber que esperar en un futuro si es que se hacen modificaciones Conclusion Editar El manejo de excepciones ayuda a lidiar con los errores de una aplicacion por medio de la manipulacion del codigo para hacer programas mas robustos Ademas existen herramientas que ayudan a manejarlas tal es el caso de los bloques try intentar que encierran el codigo que puede lanzar una excepcion y los bloques el catch atrapar que lidian con las excepciones que surjan Tambien existen tecnicas que el programador utiliza para conocer el posible funcionamiento del programa y detectar los errores que pueda contener Ejemplos de codigo EditarJava Editar public class ExcDemo public static void main String args int nums new int 4 try System out println Antes de que se genere la excepcion generar una excepcion de indice fuera de limites nums 7 10 catch ArrayIndexOutOfBoundsException exc Capturando la excepcion System out println Indice fuera de los limites finally System out println Despues de que se genere la excepcion Delphi Editar procedure TForm1 Button1Click Sender TObject begin try try a b c finally Este codigo siempre se ejecuta independientemente de si ocurre o no una excepcion end except on e EZeroDivide do Manejo de la excepcion Division por cero on e Exception do Manejo de una excepcion generica end end Pascal Editar Var i X Y Entero Declaramos las variables a utilizar AdmErr Administrar Error Resultado X Y Controlar i Controlar si existe i obtiene el valor de la excepcion Seleccionar i Caso errEntDivCero Si i es igual a Division a cero Mensaje Division a cero Caso Otro Salir AdmErr FinSeleccionar FinAdmErr Fin Administrar Error Python Editar try result x y except ZeroDivisionError print division by zero else print result is result finally print executing finally clause Ada Editar type T Matriz is array Positive range lt gt Positive range lt gt of Integer procedure Rellenar Matriz Matriz in T Matriz K in Integer Q in Integer is begin begin Matriz K Q 3 exception when Constraint Error gt Put Line Las posiciones se salen del rango de la matriz end end Rellenar Matriz Referencias Editar Class Throwable html Oracle Corporation en ingles Archivado desde el original el 25 de noviembre de 2011 Consultado el 29 de febrero de 2020 The Throwable class is the superclass of all errors and exceptions in the Java language Only objects that are instances of this class or one of its subclasses are thrown by the Java Virtual Machine or can be thrown by the Java throw statement Enlaces externos EditarIntroduccion al manejo de excepciones en C exceptions4c Una biblioteca de manejo de excepciones para C Tratamiento de excepciones en Java Datos Q471748 Obtenido de https es wikipedia org w index php title Manejo de excepciones amp oldid 139945204, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos