Instrucciones y excepciones

Slides:



Advertisements
Presentaciones similares
EL LENGUAJE DE PROGRAMACIÓN C
Advertisements

Programación Interactiva Fundamentos de Programación
Instrucciones y excepciones
Manejo de errores y excepciones
MANEJO DE EXCEPCIONES EN C++
UNIVERSIDAD LATINA (UNILA)
Tema 4: Sentencias de control
Conversión cadena a número
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
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.
Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Desarrollador Profesional de Juegos Programación III Unidad I El manejador universal.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
Tema – 5 Construcciones condicionales Introducción En un programa es usual ejecutar unas instrucciones u otras en función de unas condiciones especificadas.
Excepciones Diseño y manejo de excepciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 5 Versión
Applications Development I 6.1 Foro Tomas Anzalotta Alvarado.
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
Computación I :: Prof. Yeniffer Peña Introducción al C Presentación Computación I.
2015-BM5A. ¿Qué estructuras de Programación conocemos? Condicional: If … { } … Else …{ } Condicional por Casos: Switch (opcion) { } Repetitiva exacta:
Ingeniero en Computación José Alfredo Cobián Campos
Taller de Java Universidad de los Andes
Estructuras de Control en Visual Basic.net
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
Estructuras de Control.
Olimpiadas Chilenas de Informática - Formación
Anexo Chame-San Carlos
Lenguaje de Programación C#
Estructuras de Control en Visual Basic.net
Programación I MC Beatriz Beltrán Martínez
While... End While Jerónimo Jesica Oropeza William Montes Cesar
Ciclos while y do ... while Ixent Galpin.
Clase 7: Abreviaturas Valeria Herskovic –
Manejo de errores: Excepciones en Java
Manejo de Excepciones Agustín J. González ELO329.
Bucles y estructuras de decisión
MATLAB 6.5 Clase 3: Funciones básicas e Introducción a la Programación
Manejo de Excepciones Agustín J. González ELO329.
Programación Orientada a Objetos
Programación Gráfica 5. Introducción a C++..
Estructuras de control en PHP
Manejo de Excepciones Agustín J. González ELO329.
Manejo de errores: Excepciones en Java
Programación en Java..
Curso de iniciación al trabajo con MatLab 7.0
Manejo de Excepciones Agustín J. González ELO329.
ESTRUCTURAS DE CONTROL EN VISUAL BASIC.NET Prof.: Rafael Mourglia.
Fundamentos de programación
Tema 2: Lenguaje PHP básico
ESTRUCTURAS DE DATOS Docente: Ing. Yesika Medina
Programación I MC José Andrés Vázquez Flores
Manejo de errores y excepciones
Bucles y estructuras de decisión
Javascript.
Estructuras de Control
Informática Ingeniería en Electrónica y Automática Industrial
JAVA: elementos básicos
Programación Orientada a Objetos
Manejo de errores: Excepciones en Java
If… then Visual basic.
Manejo de Excepciones en C++
Manejo de excepciones Escuela de Ingeniería de Sistemas y Computación Universidad del Valle INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS (IPOO)
Manejo de Excepciones en C++
Programación Orientada a Objetos
Tema 8. Estructuras de decisión. Clases 1 y 2.
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 no 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

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 numero 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 Objetos 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