Instrucciones y excepciones

Slides:



Advertisements
Presentaciones similares
Estructuras de control
Advertisements

ESTRUCTURAS DE CONTROL
Exceptions y Assertions Introducción a la terminología Bloques: try, catch Uso de finally Bloques: try, catch, finally Categorías de Exceptions Excepciones.
EXCEPCIONES UNIDAD 5.
Lenguaje PHP Capítulo 4.
Programación Interactiva Fundamentos de Programación
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
Manejo de errores y excepciones
Uso de variables de tipo referencia
PHP-MYSQL OPERADORES EN PHP
MANEJO DE EXCEPCIONES EN C++
Desarrollo de Aplicaciones para Internet
SESION 4 PROGRAMACIÓN. Septiembre 2010 SESION 3: OPERADORES 1 Comentarios /* */ // /// La guía de estilo de UA determina que: No se debe escribir comentario.
Tema 2: Lenguaje PHP básico
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.
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
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD LATINA (UNILA)
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
CICLOS EN C.
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.
Manejo de excepciones en Java
Estructuras de Control
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación EXCEPCIONES EN JAVA Diciembre de 2008.
CORPOCIDES Ing. Emilio Medina Baquero
Estructuras de control
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Tema 4: Sentencias de control
Ingeniero Anyelo Quintero
Control de flujo: Bucles
Framework Class Library (FCL) Dr. Diego Lz. de Ipiña Gz. de Artaza
Programación con Assertions
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capítulo 1 “Elementos de Programación”
Conversión cadena a número
Tema 11: Excepciones Antonio J. Sierra.
SENTENCIAS DE CONTROL Ing. José Antonio Poma G..
Curso Programación en Java
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.
Informática Ingeniería en Electrónica y Automática Industrial
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CUATRO CONTROL DE FLUJOS, EXCEPCIONES Y ASERSIONES.
Programación orientada a objetos Capítulo 12 Manejo de errores.
Resumen Fundamentos de Programación/ Programación I
Módulo 8: Manejo de Errores y Excepciones
EXPRESIONES Y SENTENCIAS
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
Control de Flujo.
Programación avanzada en Java Miguel Ángel Corella 26 de Septiembre de 2005.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) ESTRUCTURA DEL LENGUAJE.
Programación orientada a objetos Capítulo 12 Manejo de errores.
Programación Básica con NQC Patricio A. Castillo 10/05/2008.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Tratamiento de excepciones
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
El lenguaje de programación C - Control de flujo y bucles -
Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Estructuras de Decisión
Estructuras de Control
Desarrollador Profesional de Juegos Programación III Unidad I El manejador universal.
TIPOS DE DATOS Estructuras de control y repetición PARCIAL III.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
Operadores de asignación
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
Instrucciones y excepciones
Transcripción de la presentación:

Instrucciones y excepciones

Descrición General Introducción a las instrucciones Uso de instrucciones condicionales Use instrucciones iterativas Uso de instrucciones de salto Tratamiento de excepciones básicas Lanzamiento de excepciones

Introducción a las instrucciones Bloques de instrucciones Tipos de instrucciones

Bloques de instrucciones Se usan llaves para delimitar bloques Un bloque y su bloque padre o pueden tener una variable con el mismo nombre Bloques hermanos pueden tener variables con el mismo nombre { // code } { int i; ... } { int i; ... }

Tipos de instrucciones Instrucciones Condicionales Las instrucciones if y switch Instrucciones de iteración Las instrucciones while, do, for, y foreach Instrucciones de salto Las instrucciones goto, break, y continue

Uso de instrucciones condicionales La instrucción if Instrucción if en cascada La instrucción switch Problema: ¿Dónde está el error?

La instrucción if Sintaxis: No hay conversión implicita de int a bool if ( expresión-booleana ) primera-instrucción-incrustada else segunda-instrucción-incrustada int x; ... if (x) ... // Debe ser if (x != 0) en C# if (x = 0) ... // Debe ser if (x == 0) en C#  

Instrucciones if en cascada enum Palo { Treboles, Corazones, Diamantes, Picas} Palo cartas = Palo.Corazones; if (cartas == Palo.Treboles) color = “Negro”; else if (cartas == Palo.Corazones) color = “Rojo"; else if (palo == Palo.Diamantes) color = "Rojo"; else color = “Negro";

La instrucción switch Las instrucciones switch se usan en bloques de varios casos Se usan instrucciones break para evitar caídas en cascada (fall through) switch (palo) { case Palo.Treboles : case Palo.Picas : color = "Negro"; break; case Palo.Corazones : case Palo.Diamantes : color = "Rojo"; break; default: color = "ERROR"; break; }

Uso de instrucciones iterativas La instrucción while La instrucción do La instrucción for La instrucción foreach Problema: ¿Dónde está el error?

La instrucción while Ejecuta instrucciones en función de un valor booleano Evalúa la expresión booleana al principio del bucle Ejecuta las instrucciones mientras el valor booleano sea True int i = 0; while (i < 10) { Console.WriteLine(i); i++; } 0 1 2 3 4 5 6 7 8 9

La instrucción do Ejecuta instrucciones en función de un valor booleano Evalúa la expresión booleana al final del bucle Ejecuta las instrucciones mientras el valor booleano sea True int i = 0; do { Console.WriteLine(i); i++; } while (i < 10); 0 1 2 3 4 5 6 7 8 9

La instrucción for La información de actualización está al principio del bucle Las variables de un bloque for sólo son válidas en el bloque Un bucle for puede iterar varios valores for (int i = 0; i < 10; i++) { Console.WriteLine(i); } 0 1 2 3 4 5 6 7 8 9 for (int i = 0; i < 10; i++) Console.WriteLine(i); Console.WriteLine(i); // Error: i está fuera de ámbito for (int i = 0, j = 0; ... ; i++, j++)

La instrucción foreach Elige el tipo y el nombre de la variable de iteración Ejecuta instrucciones incrustadas para cada elemento de la clase collection ArrayList numeros = new ArrayList( ); for (int i = 0; i < 10; i++ ) { numeros.Add(i); } foreach (int number in numeros) { Console.WriteLine(numero); 0 1 2 3 4 5 6 7 8 9

Uso de instrucciones de salto La instrucción goto Las instrucciones break y continue

La instrucción goto Transfiere el flujo de control a una instrucción con etiqueta Pueden dar lugar fácilmente a código “spaghetti” de difícil interpretación if (numero % 2 == 0) goto Par; Console.WriteLine(“impar"); goto Fin; Par: Console.WriteLine(“par"); Fin:;

Las instrucciones break and continue La instrucción break salta fuera de una iteración La instrucción continue salta a la siguiente iteración int i = 0; while (true) { Console.WriteLine(i); i++; if (i < 10) continue; else break; }

Tratamiento de excepciones básicas ¿Por qué se emplean excepciones? Objetos excepción Uso de bloques try-catch Bloques catch múltiples

¿Por qué se emplean excepciones? El tradicional tratamiento procedural de errores es demasiado complicado Lógica del programa int errorCodigo = 0; FileInfo source = new FileInfo("code.cs"); if (errorCodigo == -1) goto Fallo; int longitud = (int)source.Length; if (errorCodigo == -2) goto Fallo; char[] contenido = new char[longitud]; if (errorCodigo == -3) goto Fallo; // No hay problemas ... Fallo: ... Trat. De errores

OutOfMemoryException NullReferenceException ApplicationException Obejetos Excepción Exception SystemException OutOfMemoryException IOException NullReferenceException ApplicationException

Uso de bloques try-catch Solución orientada a objetos para el tratamiento de errores Poner el código normal en un bloque try Tratar las excepciones en un bloque catch aparte try { Console.WriteLine("Escriba un número"); int i = int.Parse(Console.ReadLine()); } catch (OverflowException capturada) { Console.WriteLine(capturada); Lógica del programa Tratamiento de errores

Bloques catch múltiples Cada bloque catch captura una clase de excepcion Un bloque try puede tener un bloque catch general Un bloque try no puede capturar una clase derivada de una clase capturada en un bloque catch anterior try { Console.WriteLine(“Escriba el primer número"); int i = int.Parse(Console.ReadLine()); Console.WriteLine("Escriba el segundo número"); int j = int.Parse(Console.ReadLine()); int k = i / j; } catch (OverflowException capturada) {…} catch (DivideByZeroException capturada) {…}

Lanzamiento de excepciones La instrucción throw La cláusula finally Comprobación de desbordamiento aritmético Normas para el tratamiento de excepciones

La instrucción throw Lanza una excepción apropiada Asigna a la excepción un mensaje significativo throw expression ; if (minuto < 1 || minuto >= 60) { throw new InvalidTimeException(minuto + " no es un minuto válido"); // !! Not alcanzado !! }

Bloques catch opcionales La cláusula finally Las instrucciones de un bloque finally se ejecutan Monitor.Enter(x); try { ... } finally { Monitor.Exit(x); Bloques catch opcionales

Comprobación de desbordamiento aritmético Por defecto, el desbordamiento aritmético no se comprueba Un comando checked activa la comprobación de desbordamiento checked { int numero = int.MaxValue; Console.WriteLine(++numero); } OverflowException Se lanza un objeto excepción. WriteLine no se ejecuta unchecked { int numero = int.MaxValue; Console.WriteLine(++numero); } MaxValue + 1 es negativo? -2147483648

Normas para el tratamiento de excepciones Lanzamiento Evitar excepciones para casos normales o esperados Nunca crear ni lanzar objetos de clase Exception Incluir una cadena de descripción en un objeto Exception Lanzar objetos de la clase más específica posible Captura Ordenar los bloques catch de lo específico a lo general No permitir que salgan excepciones de Main

Práctica – Compartición y seguridad de los recursos de red