Manejo de Excepciones Para capturar y manejar las excepciones Java proporciona la sentencia try, catch y finalty. Entre un try y un catch se escribe

Excepciones Es un evento que nuestro programa no sabe como manejar. En Java, se define una excepción como un objeto que es la instancia de la clase T

2 downloads 87 Views 657KB Size

Story Transcript

Excepciones Es un evento que nuestro programa no sabe como manejar.

En Java, se define una excepción como un objeto que es la instancia de la clase Throwable o alguna de sus subclases. Las excepciones se producen en condiciones normales, Java nos obliga a capturarlas y manejarlas. Las mas conocidas, que heredan de Exception son: 1. RuntimeException(generadas en tiempo de ejecución, que reflejan un error de codificación) 2. IOException(errores relacionados con la E/S del programa)

Manejo de Excepciones Para capturar y manejar las excepciones Java proporciona la sentencia try, catch y finalty. Entre un try y un catch se escribe el código de programa que pueda provocar una excepción. La estructura general es: Try{ /* bloque de ejecución que puede provocar una excepción */ } catch(Nombre de la excepcion instancia) {/* bloque de ejecución que maneja la excepción en caso de producirse */ }

catch(EOFException oef) { System.out.println("fin de proceso"); } En el catch va el nombre de la excepción que deseamos capturar, si no conocemos que excepción es hay una jerarquía de excepciones de forma tal que podemos poner la clase padre de todas las excepciones que es Exception. Catch(Exception ex){ /*imprime mensaje de error*/ /*imprime el camino de la pila*/ ex.printStackTrace();}}

Finally: Es el bloque de código que se ejecuta siempre, haya o no excepción. Este bloque finally puede ser útil cuando no hay ninguna excepción. Es un trozo de código que se ejecuta independientemente de lo que se haga en el bloque try.Se utiliza para liberar memoria, cerrar archivos, aun cuando haya errores.

Propagación de excepciones Al implementar un método hay que decidir si las excepciones se propagaran hacia arriba(throws) o si se capturan(catch) en el método. • Sentencia throws:

Los métodos utilizan la sentencia throws para lanzar una excepción. Se coloca al principio del método, incluye una lista de excepciones que se pueden producir al invocar al método. Se usa si no queremos manejar la excepción y deseamos que lo haga el padre en la pila de llamadas. Ejemplo: public void bajas() throws IOException

En el siguiente diagrama se muestra gráficamente cómo se propaga la excepción que se genera en el código, a través de la pila de llamadas durante la ejecución del código:

ARCHIVOS • La apertura del Archivo y su posterior lectura pueden lanzar excepciones que debemos capturar. Por ello, la apertura del Archivo y la lectura debe colocarse en un bloque trycatch. • Además, el Archivo hay que cerrarlo cuando terminemos con él, tanto si todo ha ido bien como si ha habido algún error en la lectura después de haberlo abierto. • Por ello, se suele poner al try-catch un bloque finally y dentro de él, el close() del archivo.

CREACIÓN DE UN ARCHIVO

Para crear un objeto archivo se usa “new File” Sintaxis: File arch = new File("nombre");

-Se le da el nombre al archivo y se asigna a la variable arch.

• Para escritura en el archivo Flujo de bytes: manejan flujos de bytes dirigidos hacia archivos en disco. FileOutputStream Flujo de datos: soportan operaciones de salida de datos de tipo primitivo. DataOutputStream • Para lectura del archivo Flujo de bytes: flujos de bytes provenientes de un archivo en disco. FileInputStream Flujo de datos: soportan operaciones de entrada de datos de tipo primitivo. DataInputStream

Manejo de archivos • Close(): cerrar un archivo Ejemplo: arch.close(); • Rename(): cambiar el nombre a un archivo Ejemplo: archTemp.renameTo(arch); • delete(): borrar un archivo. Ejemplo: arch.delete();

CLASE ARTICULO public class Registro{ private int Cod_Art; private String Desc; private int Stock; private int Pto_rep; public Registro(){;} public void ingresarDatos()throws IOException{ Scanner entrada=new Scanner(System.in); System.out.println("Codigo de articulo :"); Cod_Art=entrada.nextInt(); System.out.println(" Descripcion :"); Desc= entrada.next(); System.out.println(" Stock :"); Stock = entrada.nextInt(); System.out.println(" Punto de reposicion :"); Pto_rep =entrada.nextInt();}

public void agregarReg(DataOutputStream archi)throws IOException { archi.writeInt(Cod_Art); archi.writeUTF(Desc); archi.writeInt(Stock); archi.writeInt(Pto_rep); } public void leerReg(DataInputStream fent)throws IOException{ Cod_Art=fent.readInt(); Desc=fent.readUTF(); Stock=fent.readInt(); Pto_rep=fent.readInt(); }

public void CreaArticulo(){ try{ DataOutputStream archSalA =new DataOutputStream(new FileOutputStream(arch,true)); boolean mas=true; while(mas){ miA.ingresarDatos(); miA.agregarReg(archSalA); System.out.println("continuar s/n"); char opcion=(entrada.next()).charAt(0); mas=opcion!='n'; } archSalA.close(); }catch(IOException e){ System.out.println("Exception de entrada/salida"); } }

public void listado(){ int tot=0; try{ archEnt =new FileInputStream(arch); archEntA =new DataInputStream(archEnt); boolean mas=true; System.out.println("LISTADO DE ARTICULOS"); System.out.println("CODIGO DESCRIPCION STOCK PUNTO DE REPOSICION"); while(mas){ miA.leerReg(archEntA); miA.mostrarDatos(); tot=tot+1; } }catch(EOFException oef) { System.out.println("fin de proceso"); } catch(IOException e){ System.out.println("Excepcion de entrada/salida"); } try{ archEntA.close(); }catch(IOException e){ System.out.println("Excepcion de entrada/salida no ha procesado el archivo"); } System.out.println("total de articulos:"+tot); }

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.