SlideShare una empresa de Scribd logo
TRY CATCH MANEJO DE EXCEPCIONES
Existe una excepción matetemática muy famosa, de dividir un número entre cero, así se
resolvería:
public static void main(String[] args) {
int cinco = 5;
int cero = 0;
try{
System.out.println(cinco/cero);
}catch(ArithmeticException exception){
System.out.println(exception);
}
System.out.println("Fin del programa");
}
En caso de que no pusieses aquí el bloque try catch, lo que sucedería es que la cadena "Fin del
programa no se imprimiría". Lo que hace el bloque try es envolver una zona de código peligrosa,
que pueda generar una excepción, y el bloque catch se encarga de resolverla, ten en cuenta que
puedes poner más de un catch para resolver más de una excepción que se pueda encontrar en
el mismo bloque try. Norlmalmente se recomienda que el bloque try catch envuelva la menor
parte de código posible, en el caso del ejemplo sólo hay una línea dentro.
Sintaxis del Bloque try/catch
try {
// Código que pueda generar Errores ("Exception's")
} catch(Tipo1 id1) {
// Manejar "Exception's" para la Clase Tipo1
} catch(Tipo2 id2) {
// Manejar "Exception's" para la Clase Tipo2
} catch(Tipo3 id3) {
// Manejar "Exception's" para la Clase Tipo3
}
La primer sección del Bloque es iniciada con el vocablo try y una llave ({ ) que indica el principio
de la zona protegida, dentro de esta primer sección es colocado todo código que pueda generar
algún tipo de error, al terminar esta sección se define un grupo de estructuras con el elemento
catch.
Como se puede observar en la ilustración, cada vocablo catch es seguido de un paréntesis que
contiene una Clase así como una referencia, estos son considerados los Datos de Entrada para
cada sección catch; el tipo de Clases definidas dentro de cada sección catch depende del
numero de "Exceptions" que pueden ser generadas por el programa; lo anterior permite definir
un numero ilimitado de "Exceptions" cada uno con su propio código para manejar el error.
Para todo Bloque try/catch debe ser definida al menos una sección catch; si son definidos más
de dos Clases para errores ("Exceptions") estas deben ser declaradas de más a menos
especifica, siendo la menos especifica la Clase java.lang.Throwable; es de esta Clase que son
Heredadas ("Inherited") todo "Exception" en Java, esto será descrito en la siguiente sección de
este curso.
Sintaxis del Bloque try/catch/finally
Para los Bloques try/catch existe una variación que consiste en agregar una sección denominada
finally, dicha estructura estaría compuesta de la siguiente manera:
try {
// Código que pueda generar Errores ("Exception's")
} catch(Tipo1 id1) {
// Manejar "Exception's" para la Clase Tipo1
} catch(Tipo2 id2) {
// Manejar "Exception's" para la Clase Tipo2
} catch(Tipo3 id3) {
// Manejar "Exception's" para la Clase Tipo3
} finally {
// Actividades que siempre ocurren
}
La utilización de finally es empleada dentro de un Bloque try/catch para realizar tareas que
deben ser ejecutadas independientemente del comportamiento de errores.
Cuando se atrapa un error ("Exception") un programa queda inconcluso, es esta terminación
abrupta la que puede causar que algún recurso/mecanismo permanezca asignado o mal
utilizado; a través de una sección finally se garantiza que sea ejecutado un juego de
instrucciones independientemente del tipo de error que pueda ocurrir; un uso muy común para
una sección finally consiste en liberar conexiones hacia Bases de Datos que pudieran haber sido
asignadas en la sección try.
EJEMPLO CON ERRORES
/* Ejemplo Gestión de Excepciones Java aprenderaprogramar.com */
public class
Programa
{
public static void
main
(String [] args) {
try
{
System.out.println("Intentamos ejecutar el bloque de instrucciones:");
System.out.println("Instrucción 1.");
int n = Integer.parseInt("M");//error forzado en tiempo de ejecución.
System.out.println("Instrucción 2.");
System.out.println("Instrucción 3, etc.");
}
catch
(Exception e){
System.out.println("Instrucciones a ejecutar cuando se produce un error");
}
finally
{
System.out.println("Instrucciones a ejecut
ar finalmente tanto si se producen errores como si no.");
}
}
}
Se produce un error porque el método parseInt de laclase Integer espera que dentro de las
comillas llegue un número y no una letra. Por ejemplo
int n = Integer.parseInt("65"); sirve para transformar elString 65 en un int de valor 65. Al no
encontrar un valor válido se produce un error de tipo
java.lang.NumberFormatException.
DIVISIÓN POR CERO
public class PruebaExcepciones {
public static void main(String args[]) {
int valor=5, cero=0;
int[] array = {1, 2, 3};
try {
valor = valor/cero; //división por cero
array[4]= 5; //acceso a una posición no disponible
}
catch( ArithmeticException e ) {
System.out.println( "Division por cero" );
}
catch( Exception e ) {
System.out.println( "Se ha producido un error" );
}
}
}
OTRO EJEMPLO
public class PruebaExcepcion {
public static void main(String args[]) {
int valor=5, cero=0;
int[] array = {1, 2, 3};
try {
try {
valor = valor/cero; //división por cero
array[4]= 5; //acceso a una posición no disponible
}catch( ArithmeticException e ) {
System.out.println( "Division por cero" );
throw e;
}catch( Exception e ) {
System.out.println( "Se ha producido un error" );
}
}catch(Exception e){
System.out.println(e.getMessage());
}
}
}
Ejemplo excepción definida por el usuario
Public class Persona{
int edad;
.....
public void ponEdad(int ed) throws EdadFueraDeRango
Exception {
if ((ed < 0) || (ed > 130))
throw new EdadFueraDeRangoException("Demasiado jove
n o demasiado viejo");
edad = ed;
}}
try {
alguien.ponEdad(150);
} catch (EdadFueraDeRangoException e){
System.out.println("se ha producido la excepción");
e.printStackTrace();
System.out.println(e.getMessage());
}
EdadFueraDeRangoException: Demasiado joven o demasi
ado viejo
at Persona.ponEdad<Persona.java>
at Persona.main<Persona.java>

Más contenido relacionado

PDF
Cu00927 c gestion excepciones java try catch finally ejemplos ejercicios
DOCX
Excepciones en Java
PDF
Guia demanejodeexcepcionesaserciones
PDF
Lab excepciones propias
PPT
5.manejo de excepciones
PPT
Gestión de errores en Java
PPT
Manejo De Excepciones
DOCX
Mas sobre excepciones
Cu00927 c gestion excepciones java try catch finally ejemplos ejercicios
Excepciones en Java
Guia demanejodeexcepcionesaserciones
Lab excepciones propias
5.manejo de excepciones
Gestión de errores en Java
Manejo De Excepciones
Mas sobre excepciones

La actualidad más candente (19)

DOCX
Las excepciones standar
PDF
Manejo de excepciones en Java
PPTX
PPTX
PDF
Lab excepciones
PDF
excepciones en java
PDF
Java excepciones
PPT
PDF
unidad 5 excepciones propias
PPT
Leccion 3 4 Java
PDF
05 java excepciones
PPT
Excepciones en java
PPT
Programación III (Java) - 04 Excepciones
PDF
PPT
Semana 8 excepciones definidas por el usuario
PPT
excepciones_java en www.fiec.espol.edu.ec
PPT
Capitulo II
PPT
Excepciones
Las excepciones standar
Manejo de excepciones en Java
Lab excepciones
excepciones en java
Java excepciones
unidad 5 excepciones propias
Leccion 3 4 Java
05 java excepciones
Excepciones en java
Programación III (Java) - 04 Excepciones
Semana 8 excepciones definidas por el usuario
excepciones_java en www.fiec.espol.edu.ec
Capitulo II
Excepciones
Publicidad

Destacado (20)

PDF
PPT
El holocausto nazi
PDF
Borrador pleno (10) 09 julio-2013, 1ª parte
PDF
Borrador pleno (11) 30 agosto-2013, 2ª parte
PPTX
Mandamiento1
PDF
Pleno (04) 12 marzo-2013, 3ª parte
PPTX
Imagenes que nos cuidan
PPTX
Tecnología streaming
PDF
Málaga Smart City: La hoja de ruta para su transformación en una ciudad intel...
PPSX
Diapositivas vacaciones 10 1
PDF
Introducción
PPTX
Workflow
PPTX
ODP
Dia del niño
PPT
Diagrama causa efecto 4 2
PPTX
Redes académicas
PPT
Contaminacion ambiental
PDF
DOCX
Word
El holocausto nazi
Borrador pleno (10) 09 julio-2013, 1ª parte
Borrador pleno (11) 30 agosto-2013, 2ª parte
Mandamiento1
Pleno (04) 12 marzo-2013, 3ª parte
Imagenes que nos cuidan
Tecnología streaming
Málaga Smart City: La hoja de ruta para su transformación en una ciudad intel...
Diapositivas vacaciones 10 1
Introducción
Workflow
Dia del niño
Diagrama causa efecto 4 2
Redes académicas
Contaminacion ambiental
Word
Publicidad

Similar a Try catch (18)

PDF
Java5
PPT
Java exceptions
PPT
Java exceptions
PPT
excepciones en java
PDF
Manejo de excepciones en vb
PDF
Uso de Excepciones en JAVA
PDF
Tema 10 excepciones
PPTX
Gestión de Excepciones
PDF
Tema 4 excepciones por gio
PPT
Scjp Jug Section 2 Flow Control
PPT
Excepciones
PPT
Gestion de errores en java
PPT
Excepciones
PPTX
11 Excepciones
PPT
Excepciones
PPTX
Manejo de Excepciones
PDF
Jyoc java-cap12 excepciones
PPT
1 1 5 Objetos Excepcion
 
Java5
Java exceptions
Java exceptions
excepciones en java
Manejo de excepciones en vb
Uso de Excepciones en JAVA
Tema 10 excepciones
Gestión de Excepciones
Tema 4 excepciones por gio
Scjp Jug Section 2 Flow Control
Excepciones
Gestion de errores en java
Excepciones
11 Excepciones
Excepciones
Manejo de Excepciones
Jyoc java-cap12 excepciones
1 1 5 Objetos Excepcion
 

Más de jbersosa (20)

DOCX
Estructuras de control try catch
DOCX
Main
PDF
Clasen1java
PDF
Programación java1
RTF
Tercercortesistop
PDF
Encapsulacion
DOCX
Administracion de la memoria principal
PPTX
Auditoria 2
PDF
Auditoriasistemasi 150703002656-lva1-app6891
PDF
Auditoria informatica
PPTX
Auditoria de sistemas (1)
PPTX
Auditoría de sistemas de información presentación
PDF
Realizar investigación y hacer un análisis por cada tema asignado al particip...
DOCX
Sistemas operativos
PDF
PDF
Estructura de una red
DOCX
Proyectodeprogramacinidesegundocorte2015 2
DOCX
Bases de datos mysql y repotes usando jasper report
PDF
Continuación 3 de la creación de reportes con jasper report
PDF
Continuacion ejemplo de base de datos y reports con jasper report
Estructuras de control try catch
Main
Clasen1java
Programación java1
Tercercortesistop
Encapsulacion
Administracion de la memoria principal
Auditoria 2
Auditoriasistemasi 150703002656-lva1-app6891
Auditoria informatica
Auditoria de sistemas (1)
Auditoría de sistemas de información presentación
Realizar investigación y hacer un análisis por cada tema asignado al particip...
Sistemas operativos
Estructura de una red
Proyectodeprogramacinidesegundocorte2015 2
Bases de datos mysql y repotes usando jasper report
Continuación 3 de la creación de reportes con jasper report
Continuacion ejemplo de base de datos y reports con jasper report

Try catch

  • 1. TRY CATCH MANEJO DE EXCEPCIONES Existe una excepción matetemática muy famosa, de dividir un número entre cero, así se resolvería: public static void main(String[] args) { int cinco = 5; int cero = 0; try{ System.out.println(cinco/cero); }catch(ArithmeticException exception){ System.out.println(exception); } System.out.println("Fin del programa"); } En caso de que no pusieses aquí el bloque try catch, lo que sucedería es que la cadena "Fin del programa no se imprimiría". Lo que hace el bloque try es envolver una zona de código peligrosa, que pueda generar una excepción, y el bloque catch se encarga de resolverla, ten en cuenta que puedes poner más de un catch para resolver más de una excepción que se pueda encontrar en el mismo bloque try. Norlmalmente se recomienda que el bloque try catch envuelva la menor parte de código posible, en el caso del ejemplo sólo hay una línea dentro. Sintaxis del Bloque try/catch try { // Código que pueda generar Errores ("Exception's") } catch(Tipo1 id1) { // Manejar "Exception's" para la Clase Tipo1 } catch(Tipo2 id2) { // Manejar "Exception's" para la Clase Tipo2 } catch(Tipo3 id3) { // Manejar "Exception's" para la Clase Tipo3 } La primer sección del Bloque es iniciada con el vocablo try y una llave ({ ) que indica el principio de la zona protegida, dentro de esta primer sección es colocado todo código que pueda generar algún tipo de error, al terminar esta sección se define un grupo de estructuras con el elemento catch. Como se puede observar en la ilustración, cada vocablo catch es seguido de un paréntesis que contiene una Clase así como una referencia, estos son considerados los Datos de Entrada para cada sección catch; el tipo de Clases definidas dentro de cada sección catch depende del numero de "Exceptions" que pueden ser generadas por el programa; lo anterior permite definir un numero ilimitado de "Exceptions" cada uno con su propio código para manejar el error. Para todo Bloque try/catch debe ser definida al menos una sección catch; si son definidos más de dos Clases para errores ("Exceptions") estas deben ser declaradas de más a menos especifica, siendo la menos especifica la Clase java.lang.Throwable; es de esta Clase que son Heredadas ("Inherited") todo "Exception" en Java, esto será descrito en la siguiente sección de este curso.
  • 2. Sintaxis del Bloque try/catch/finally Para los Bloques try/catch existe una variación que consiste en agregar una sección denominada finally, dicha estructura estaría compuesta de la siguiente manera: try { // Código que pueda generar Errores ("Exception's") } catch(Tipo1 id1) { // Manejar "Exception's" para la Clase Tipo1 } catch(Tipo2 id2) { // Manejar "Exception's" para la Clase Tipo2 } catch(Tipo3 id3) { // Manejar "Exception's" para la Clase Tipo3 } finally { // Actividades que siempre ocurren } La utilización de finally es empleada dentro de un Bloque try/catch para realizar tareas que deben ser ejecutadas independientemente del comportamiento de errores. Cuando se atrapa un error ("Exception") un programa queda inconcluso, es esta terminación abrupta la que puede causar que algún recurso/mecanismo permanezca asignado o mal utilizado; a través de una sección finally se garantiza que sea ejecutado un juego de instrucciones independientemente del tipo de error que pueda ocurrir; un uso muy común para una sección finally consiste en liberar conexiones hacia Bases de Datos que pudieran haber sido asignadas en la sección try. EJEMPLO CON ERRORES /* Ejemplo Gestión de Excepciones Java aprenderaprogramar.com */ public class Programa { public static void main (String [] args) { try { System.out.println("Intentamos ejecutar el bloque de instrucciones:"); System.out.println("Instrucción 1."); int n = Integer.parseInt("M");//error forzado en tiempo de ejecución. System.out.println("Instrucción 2."); System.out.println("Instrucción 3, etc."); } catch (Exception e){ System.out.println("Instrucciones a ejecutar cuando se produce un error"); } finally { System.out.println("Instrucciones a ejecut ar finalmente tanto si se producen errores como si no."); }
  • 3. } } Se produce un error porque el método parseInt de laclase Integer espera que dentro de las comillas llegue un número y no una letra. Por ejemplo int n = Integer.parseInt("65"); sirve para transformar elString 65 en un int de valor 65. Al no encontrar un valor válido se produce un error de tipo java.lang.NumberFormatException. DIVISIÓN POR CERO public class PruebaExcepciones { public static void main(String args[]) { int valor=5, cero=0; int[] array = {1, 2, 3}; try { valor = valor/cero; //división por cero array[4]= 5; //acceso a una posición no disponible } catch( ArithmeticException e ) { System.out.println( "Division por cero" ); } catch( Exception e ) { System.out.println( "Se ha producido un error" ); } } } OTRO EJEMPLO public class PruebaExcepcion { public static void main(String args[]) { int valor=5, cero=0; int[] array = {1, 2, 3}; try { try { valor = valor/cero; //división por cero array[4]= 5; //acceso a una posición no disponible }catch( ArithmeticException e ) { System.out.println( "Division por cero" ); throw e; }catch( Exception e ) { System.out.println( "Se ha producido un error" ); } }catch(Exception e){ System.out.println(e.getMessage()); } } } Ejemplo excepción definida por el usuario Public class Persona{ int edad;
  • 4. ..... public void ponEdad(int ed) throws EdadFueraDeRango Exception { if ((ed < 0) || (ed > 130)) throw new EdadFueraDeRangoException("Demasiado jove n o demasiado viejo"); edad = ed; }} try { alguien.ponEdad(150); } catch (EdadFueraDeRangoException e){ System.out.println("se ha producido la excepción"); e.printStackTrace(); System.out.println(e.getMessage()); } EdadFueraDeRangoException: Demasiado joven o demasi ado viejo at Persona.ponEdad<Persona.java> at Persona.main<Persona.java>