Excepciones y archivos

30
Excepciones y archivos Info 033

description

Info 033. Excepciones y archivos. Exception. El término Exception es la palabra corta para la frase "evento excepcional." Definition : Una excepción es un evento, que ocurre durante la ejecución de un programa, que interrumpe el flujo normal de las instrucciones del programa. - PowerPoint PPT Presentation

Transcript of Excepciones y archivos

Page 1: Excepciones y archivos

Excepciones y archivos

Info 033

Page 2: Excepciones y archivos

Exception

El término Exception es la palabra corta para la frase "evento excepcional."

Definition: Una excepción es un evento, que ocurre durante la ejecución de un programa, que interrumpe el flujo normal de las instrucciones del programa

Page 3: Excepciones y archivos

How to throw exceptions

Antes de que puedas atrapar una excepción, debes saber como lanzar excepciones.

Java provee de varias clases de excepciones.

Page 4: Excepciones y archivos

Prueba este código

import java.util.EmptyStackException;

public class TestProgram {

public static void main(String[] args) {

int size=0;

if (size == 0) {

//lanzamos una excepcion - error al programa

throw new EmptyStackException();

}

System.out.println("que paso?");

}

}

Page 5: Excepciones y archivos

Handle Exceptions – Manejo excepciones

El primer paso para poder manejar el código que genera una excepción es envolver el código con try – catch – finally

try {

code

}

catch and finally blocks . . .

Page 6: Excepciones y archivos

Ejemplo

Page 7: Excepciones y archivos

Una excepción en un objeto… de tipo Exception

Page 8: Excepciones y archivos

El control de flujo en el bloque try/catch

Cuando el intento es exitoso

Cuando el intento es fallido

Page 9: Excepciones y archivos

FinallyHay veces en las que se deseas estar seguro que un bloque de código se ejecute, se produzcan o no excepciones. Se puede hacer esto añadiendo un bloque finally después del último catch.

Page 10: Excepciones y archivos

Si Exception es un objeto, podemos extenderlo

public class MyException extends Exception { public MyException(String message) { super(message); }}

Page 11: Excepciones y archivos

Ahora prueba este código

//le avisamos al compilador que este método puede lanzar un MyException

public static void main(String[] args) throws MyException { int size=0; if (size == 0) throw new MyException("Esto es mi error");}

Page 12: Excepciones y archivos

Archivos

Al igual que con las excepciones java provee un conjunto de objetos para manejar archivos.

File archivo = new File ("archivo.txt");FileReader fr = new FileReader (archivo);BufferedReader br = new BufferedReader(fr);...String linea = br.readLine();

Page 13: Excepciones y archivos

Algo extremadamente útil

Java provee clases para guardar objetos en archivos.

Objetos de objetos, etc. Por lo que podemos guardar en un archivo la información que tengan nuestros objetos y posteriormente recuperarla.

Útil para cuando deban programar un guardar/guardar como

Page 14: Excepciones y archivos

Paso 1 – Crea la siguiente clase

//Java nos dice que para poder guardar un objeto

//debe implementar Serializable

class Persona implements Serializable {

String nombre;

int edad;

public Persona(String nombre, int edad) {

this.nombre=nombre;

this.edad =edad;

}

}

Page 15: Excepciones y archivos

Paso 2 – Crea un package para almacenar archivos

Crea un package files, que contenga un archivo de nombre guardar

Page 16: Excepciones y archivos

Paso 3 – Crear la siguiente clase

public class ObjectHandler {

public static void saveObject(String filename, Object o) throws FileNotFoundException, IOException {

FileOutputStream saveFile = new FileOutputStream(filename);

ObjectOutputStream save = new ObjectOutputStream(saveFile);

save.writeObject(o);

save.close();

}

}

Page 17: Excepciones y archivos

Paso 4 – Guardar nuestro objeto

public static void main(String[] args) {

Persona p1 = new Persona("Juan", 15);

try {

ObjectHandler.saveObject("src/files/guardar", p1);

} catch (FileNotFoundException ex) {

System.out.println("Archivo no encontrado");

} catch (IOException ex) {

System.out.println("Error de lectura/escritura");

}

}

Page 18: Excepciones y archivos

¿Para leer un objeto?

Agreguemos otro método a nuestra clase ObjectHandler

Page 19: Excepciones y archivos
Page 20: Excepciones y archivos

Probando el método

Page 21: Excepciones y archivos

Recursividad

Page 22: Excepciones y archivos

Comencemos con un ejemplo

GNU = GNU no es Unix

GNU

GNU no es UnixGNU no es Unix no es Unix

GNU no es Unix no es Unix No es Unix

… infinitamente

Page 23: Excepciones y archivos

El factorial

n! = n x (n-1) x (n-2) x … x 1

Ejemplo:

3! = 3 x 2 x 1 = 6

5! = 5 x 4 x 3 x 2 x 1 = 120

10! = 10 x 9 x 8 x 7 x 6 x 5! = 3628800

Page 24: Excepciones y archivos

Recursividad es resolver un problema grande, resolviendo pequeñas partes del

mismo problema

10! = 10 * 9!

9! = 9 * 8!

8! = 8 * 7!

7! = 7 * 6!

6! = 6 * 5!

5! = 5 * 4!

4! = 4 * 3!

3! = 3 * 2!

2! = 2 * 1!

1! = 1

Page 25: Excepciones y archivos

En resumen cada n! Es el producto de n*(n-1)!

Caso recursivo

Caso base

Una definición recursiva se compone de un caso recursivo y de uno o más casos base (que no se escriben en términos de si mismo).

Page 26: Excepciones y archivos

Resolviendo

Fact(4):

Fact(4) = 4*Fact(3)

Fact(3) = 3*Fact(2)

Fact(2) = 2 * Fact(1)

Fact(1) = 1

Fact(2) = 2*1, Fact(3) = 3*2, Fact(4) = 4*6

Page 27: Excepciones y archivos

Entendiendo la matemática, la programación es lo más sencillo

public static int factorial (int x) {

if (x > 1)

{

//recursive case

return factorial(x-1) * x;

}

else /*base case*/

return 1;

}

Page 28: Excepciones y archivos

Esto luce como

Page 29: Excepciones y archivos

Calcule el n-esimo valor de la serie de fibonacci utilizando recursividad

En términos matemáticos la serie de fibonacci se define como sigue:

Caso recursivo: Fn = Fn-1+Fn-2,

Casos base: F0=0, F1=1

¿ Fibonnaci(6) ?

Page 30: Excepciones y archivos

Ahora programe

public static int fibonacci(int number){

}