SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CUATRO CONTROL DE FLUJOS, EXCEPCIONES Y ASERSIONES.

Slides:



Advertisements
Presentaciones similares
Exceptions y Assertions Introducción a la terminología Bloques: try, catch Uso de finally Bloques: try, catch, finally Categorías de Exceptions Excepciones.
Advertisements

Curso de java básico (scjp)
EXCEPCIONES UNIDAD 5.
Programación Interactiva Manejo de Excepciones
Instrucciones y excepciones
Programación en Java Instructor:.
MANEJO DE EXCEPCIONES EN C++
Excepciones Las excepciones son señales (en forma de objeto) que se generan en ejecución en casos de errores, para que puedan ser gestionadas en el programa.
Arquitectura CLARO-TECNOTREE CAPITULO 4: Excepciones
Capitulo 4 Excepciones.
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
Informática II Prof. Dr. Gustavo Patiño MJ
UNIVERSIDAD LATINA (UNILA)
RMI (Remote Method Invocation)
HERENCIA.
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Control de excepciones
Manejo de excepciones en Java
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA SEIS DESARROLLO, INNER CLASSES.
Lic. Rosemary Torrico Bascopé
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación EXCEPCIONES EN JAVA Diciembre de 2008.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Tema 6: Clases Antonio J. Sierra.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
SCJP Sun Certified Programmer for Java 6
Manejo de Excepciones Agustín J. González ELO329.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Programación con Assertions
Conversión cadena a número
Tema 11: Excepciones Antonio J. Sierra.
Introducción a Java (2ª parte) - excepciones, colecciones, i/o, … -
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Chapter 8 Excepciones y afirmaciones o invariantes.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
Programación Orientada a Objetos Temario Excepciones – Definición. – Funcionalidad – Tipos de Excepciones – API de las Excepciones – Captura de Excepciones.
Computación II Unidad X Manejo de Excepciones. Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender.
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Refactoring, Reuso y Realidad M.C. Juan Carlos Olivares Rojas Mayo 2011.
Módulo 8: Manejo de Errores y Excepciones
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
ING.CIP.IVAN PETRLIK AZABACHE. SEMANA 4 MANEJO DE EXCEPCIONES Y ERRORES.
Unidad III Manejo de Excepciones en Java y C++
Excepciones Unidad 5.
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Programación Interactiva Manejo de Excepciones Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
Java.
Programación avanzada en Java Miguel Ángel Corella 26 de Septiembre de 2005.
Manejo de errores: Excepciones en Java
Programación orientada a objetos Capítulo 12 Manejo de errores.
Tratamiento de excepciones
Manejo de errores: Excepciones en Java ELO329: Diseño y Programación Orientados a Objetos.
MANEJO DE EXCEPCIONES. 21/11/2005 E.T.S de Ingenieros de Telecomunicacion.2 Índice ¿Qué es una excepción? Tipos de situaciones. Manejo de excepciones.
Excepciones definidas por el usuario Semana 7. Aprendizajes esperados Construye procedimientos almacenados, triggers de base de datos, cursores y funciones.
¿Qué son? – tipos – manejo - ejemplos
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
ECOM-6030 CAPÍTULO 7 EXCEPTION HANDLING Prof. Nelliud D. Torres © - Derechos Reservados.
Desarrollador Profesional de Juegos Programación III Unidad I Excepciones Tipos.
SCITMina | by Microsoft Bienvenidos Eduardo Daniel Tenorio Mayo Microsoft Student Partner Taller de Programación Orientada a Objetos Con C# Edgar Edel.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Excepciones Diseño y manejo de excepciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 5 Versión
Transcripción de la presentación:

SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6

SCJP 6.0 SEMANA CUATRO CONTROL DE FLUJOS, EXCEPCIONES Y ASERSIONES

PROPAGANDO EXCEPCIONES NO CACHADAS El bloque catch no es necesario (se puede sustituir por un bloque finally) ¿Que pasa si una excepcion es lanzada en un bloque try pero no se cuenta con un bloque catch ? Si el método no provee un bloque catch para cachar una excepción tiene que “pasar” la excepción ¿Qué significar “pasar” la excepción? Veamos como funcionan las llamadas a stack

LLAMADAS A STACK ENCADENADAS Supongamos que main() llama al método a(), el cual llama al método b(), el cual llama al método c(), entonces el stack se ve de esta forma:

LLAMADAS A STACK ENCADENADAS

DEFINIENDO EXCEPCIONES Cuando una excepcion es lanzada, un objeto de un subtipo de Exception es instanciado y se le entrega al manejador de excepciones como un argumento al bloque catch.

DEFINIENDO EXCEPCIONES Todas las excepciones son subtipos de la clase Exception. Esta clase hereda de la clase Throwable

DEFINIENDO EXCEPCIONES Como podemos ver, hay dos subclases que derivan de la clase Throwable: Exception y Error Las excepciones que derivan de Error representan situaciones inusuales que no son causadas por errores del programa. Generalmente cuando ocurre una excepcion que deriva de Error, muy dificilmente el programa puede recuperarse. Tecnicamente los Errors no son excepciones ya que no derivan de la clase Exception.

MANEJANDO EXCEPCIONES Y VIÉNDOLAS COMO CLASES Catch permite especificar un tipo particular de excepción a cachar. Actualmente se pueden cachar mas de una excepción en un bloque try Ejemplo: Si tenemos Y se lanza ArrayIndexOutOfBoundsException o StringIndexOutOfBoundsException pueden ser cachadas por IndexOutOfBoundsException ya que son subtipos de esta clase La clase IndexOutOfBoundsException tiene dos subclases: StringIndexOutOfBoundsException y ArrayIndexOutOfBoundsException

HACIENDO MATCH CON EXCEPCIONES Las excepciones se van macheando de la mas especifica a la mas general.

HACIENDO MATCH CON EXCEPCIONES Si se intenta hacerlo de la mas general a la mas especifica, el compilador marcara un error. Obtendremos un error de compilacion:

DECLARACIÓN DE EXCEPCIONES EN LOS MÉTODOS Recordando los elementos de los métodos. Las excepciones que un método puede lanzar deben ser declaradas(esto sustituye al bloque try- catch) a menos que se traten de subclases de RuntimeException. La keyword throws es usada para listar las excepciones que un metodo puede lanzar

DECLARACIÓN DE EXCEPCIONES EN LOS MÉTODOS Si en el método se declara una excepción que puede ser lanzada, y dentro de el no se declara un bloque try- catch, la excepción es propagada al método que la llamo Todos los métodos que puedan lanzar alguna excepción (a menos que sea subclase de RuntimeException) deben declarar la excepción Al declarar los métodos se da la capacidad de cachar las excepciones y “pasar” las excepciones al método que los llame.

DECLARACIÓN DE EXCEPCIONES EN LOS MÉTODOS Las excepciones que heredan de RuntimeException son la “excepción” a las reglas antes mencionadas. Pueden ser declaradas o ignoradas. Las RuntimeExceptions´s son consideradas como excepciones “ unchecked ”. Las excepciones que no heredan de RuntimeException son consideradas excepciones “ checked ”

DECLARACIÓN DE EXCEPCIONES EN LOS MÉTODOS Recuerda: Todos los metodos deben manejar las excepciones “unchecked” ya sea con un bloque try-catch o declarando las posibles excepciones en el método

PARA EL EXAMEN Si tenemos el siguiente codigo: Supongamos que lo solucionamos con:

METODOS PARA EL CONTROL DE UNA EXCEPCION Todas las clases Exception heredan una serie de metodos de Throwable: String getMessage(). Devuelve un mensaje asociado a la excepcion, dependiendo del tipo de objeto de la excepcion void printStackTrace(). Envia a la consola el volcado de pila asociado a la excepcion. void printStackTrace(PrintStream s). Permite enviar el volcado de pila a un objeto PrintStream cualquiera, por ejemplo a un fichero log.

CREAR MI PROPIA EXCEPCIÓN Se puede crear una excepción simplemente heredando de la clase Exception La excepción puede ser cachada o declarada en algún método

CREAR MI PROPIA EXCEPCIÓN Cuando un objeto que hereda de Exception es lanzado debe ser cachado o declarado.

CREAR MI PROPIA EXCEPCIÓN Se permite el uso de constructores en la clase MyException que nos permitira personalizar el mensaje de error class MyException extends Exception { public MyException(String msg) { super(msg); } Y en alguna clase: throw new MyException(“Ocurrio una excepcion”)

ERROR Los objetos Error no son excepciones, aunque los dos representan “condiciones excepcionales” Error y Exception heredan de la clase Throwable por lo tanto pueden ser lanzados por la palabra reservada throw. Todos los errores son “ unchecked ” No es necesario cachar los errores

ERROR

RE-LANZANDO UNA EXCEPCION Se puede relanzar una excepción: Todos los catch asociados en el try son ignorados. Si se cuenta con un finally lo ejecuta y pasa la excepcion al metodo que lo llamo

RE-LANZANDO UNA EXCEPCIÓN Si se re-lanza una excepción “ checked ” la excepción debe ser declarada, agregando la excepcion en la declaracion del metodo o poniendo un bloque try-catch

EXCEPCIONES COMUNES Y ERRORES

EXCEPCIONES DE JVM Son excepciones o errores que son lanzados por la JVM Por ejemplo una excepción muy común es NullPointerException.

EXCEPCIONES DE JVM Otro ejemplo de error muy común es al usar la recursividad de métodos, lo cual nos lleva a un StackOverflowError.

LANZAR EXCEPCIONES PROGRAMADAS Este tipo de excepciones son lanzadas explícitamente por la aplicación y/o los programadores de las APIs

EXCEPCIONES Y ERRORES PARA EL EXAMEN

ASERCIONES

A partir de la version Java 1.4 fueron introducidas el mecanismo de aserciones. Solamente se pueden utilizar durante la fase de desarrollo y depuracion de una aplicacion para verificar ciertas suposiciones asumidas por el programa, evitando el uso de println() o de captura de excepciones Cuando una suposicion no se cumple, la asercion generara un error que provocara la interrupcion inmediata del programa.

FORMATO DE UNA ASERCION Sintaxis de una instrucción de asercion: assert(condicion); Donde condicion es una expresion cuyo resultado debe de ser tipo boolean. Si la condicion es falsa el programa se interrumpira lanzando un AssertionError que no debera ser capturado

FORMATO DE UNA ASERCION Existe una segunda forma de utilizar aserciones assert(condicion) : expresion Donde expresion es cualquier expresion que devuelva un valor Si se envia al metodo un numero negativo, ej -1 java.lang.AssertionError: -1 no es positivo at…… ……

HABILITAR ASERCIONES Por default las aserciones estan inhabilitadas. Para compilar con aserciones se utiliza la opcion source del compilador javac.exe javac –source Archivo.java Para ejecutar un.class con aserciones se utiliza: java –ea Archivo ó java –enableassertions Archivo

HABILITAR ASERCIONES Podemos habilitar aserciones a nivel de paquete: java –ea:mipaquete… mipaquete.Archivo Donde los puntos “ … ” indican que afectan al paquete indicado y a sus subpaquetes. java –ea:prueba prueba.Ejemplo

DESHABILITAR ASERCIONES Para deshabilitar asersiones se utiliza el comando:

USO APROPIADO DE ASERCIONES No se debe utilizar aserciones para validar argumentos de un metodo publico, esto es porque no tenemos el control sobre los posibles valores que se pueden pasar al metodo. No se debe utilizar aserciones para validar argumentos de la linea de comandos. Se pueden utilizar aserciones para validar argumentos de un metodo privado, en este caso, si se tiene el control total sobre los valores que pasan al metodo.

USO APROPIADO DE ASERCIONES No se debe utilizar aserciones que puedan causar efectos colaterales, una asercion siempre debe dejar al programa en el mismo estado en el que se encontraba antes de ejecutarse

ASERSIONES

ASERCIONES