Está en la página 1de 18

PROGRAMACIÓN III

SEMANA 6
Bachillerato en Ingeniería de Sistemas
Universidad Autónoma de Centro América

Programación III - Lic. Errol Vargas Marchena


PESENTACIÓN Y DUDAS EJEMPLO_14

Programación IV - Lic.: Errol Vargas M.


Try – Catch - Finally

Programación III - Lic. Errol Vargas Marchena


Excepción

• Una excepción es la indicación de un problema que


ocurre durante la ejecución de un programa.

• Ocurre con poca frecuencia.

Programación III - Lic. Errol Vargas Marchena


Manejo de excepciones

El manejo de excepciones permite a los programadores


crear aplicaciones tolerantes a fallas y robustos (resistentes
a errores) para controlar estas excepciones y que pueda
seguir ejecutando el programa sin verse afectado por el
problema.

Programación III - Lic. Errol Vargas Marchena


Casos de excepciones

✓ Desbordamiento aritmético
▪ Fallo informático que se da cuando el código
almacenado en un registro supera su valor máximo.
✓ División entre cero (DivideByZeroException)
✓ FormatException

Programación III - Lic. Errol Vargas Marchena


Manejo de excepciones en Visual Basic

VB incorpora mecanismos para el tratamiento de las


situaciones anómalas, denominadas excepciones,
que pueden producirse durante la ejecución de un
programa.

Programación III - Lic. Errol Vargas Marchena


Controlar una excepción mediante
TRY-CATCH-FINALLY

• El bloque Try-Catch-Finally se utiliza en la programación


para manejar y controlar excepciones, que son situaciones
inesperadas o errores que pueden ocurrir durante la
ejecución de un programa. El propósito de utilizar Try-
Catch-Finally es capturar estas excepciones, manejarlas
adecuadamente y tomar acciones correspondientes.

Programación III - Lic. Errol Vargas Marchena


Ejemplo_15

 Crear el proyecto Ejemplo_15.


 Aplicación para calcular la división entre dos números.

Programación III - Lic. Errol Vargas Marchena


Bloque TRY- Ejemplo_15

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


Dim n1, n2, resultado As Integer
Try
n1 = Integer.Parse(TextBox1.Text)
n2 = Integer.Parse(TextBox2.Text)
resultado = n1 / n2
TextBox3.Text = resultado
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

Programación III - Lic. Errol Vargas Marchena


format exception & divide by zero exception
Ejemplo_15
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim n1, n2, resultado As Integer
Try
n1 = Integer.Parse(TextBox1.Text)
n2 = Integer.Parse(TextBox2.Text)
resultado = n1 / n2
TextBox3.Text = resultado
Catch ex As FormatException
Dim ex1 As String = "Debe de escribir dos números enteros"
MessageBox.Show(ex1, "Manejo de excepciones", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Catch ex As DivideByZeroException
Dim ex2 As String = "No es permitida la división entre cero"
MessageBox.Show(ex2, "Manejo de excepciones", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Try
End Sub

Programación III - Lic. Errol Vargas Marchena


Resultados
Ejemplo_15

Programación III - Lic. Errol Vargas Marchena


¿Qué pasaría si no se manejaran excepciones?

Programación III - Lic. Errol Vargas Marchena


Fuga de recursos

• Los programas solicitan y liberan recursos en forma dinámica (en tiempo


de ejecución).
• Por ejemplo, para abrir un archivo se debe solicitar el acceso a dicho
archivo. Los sistemas operativos evitan que más de un programa manipule
un archivo al mismo tiempo. Debido a esto cuando un programa termina
de usar un recurso debe de liberarlo para que otros programas puedan
accederlo. Si esto no sucede ocurre una fuga de recursos.

Programación III - Lic. Errol Vargas Marchena


El bloque finally

• El bloque Finally se ejecutará incluso si no se produce ninguna excepción


en el bloque Try. Sin embargo, si se produce una excepción y no hay un
bloque Catch que la maneje, el bloque Finally se ejecutará después de que
la excepción se propague hacia afuera.
• Es un mecanismo efectivo para eliminar fugas de recursos.
• No se puede acceder a las variables locales de un bloque try en el bloque
finally.
• Nota: Los recursos deben liberarse tan pronto como ya no sean necesarios
en un programa.

Programación III - Lic. Errol Vargas Marchena


El bloque finally

Dim n1, n2, resultado As Integer


Try
n1 = Integer.Parse(TextBox1.Text)
n2 = Integer.Parse(TextBox2.Text)
resultado = n1 / n2
TextBox3.Text = resultado
Catch ex As FormatException
Dim ex1 As String = "Debe de escribir dos números enteros"
MessageBox.Show(ex1, "Manejo de excepciones", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Catch ex As DivideByZeroException
Dim ex2 As String = "No es permitida la división entre cero"
MessageBox.Show(ex2, "Manejo de excepciones", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Finally
MessageBox.Show("SIEMPRE SE EJECUTA")
End Try

Programación III - Lic. Errol Vargas Marchena


EJEMPLO_16
Diseñe un programa para la empresa Tecnológica Nube S.A, permita calcular la cancelación diaria a un total de
n personas ingresadas por teclado, a quienes debe cancelar por horas extras trabajadas. La hora trabajada se
pauto en $15. La cantidad de horas trabajadas diarias es 8. La hora extra se pauto en $20, para lo que se pide:

a) Validad el ingreso de n, deber ser mayor a cero.

b) Validad el ingreso de las horas trabajadas, debe ser mayor que cero y no exceder de 24horas.

c) Calcular las horas a cancelar diario por trabajador.

d) Calcular las horas extras del día por trabajador.

e) Presentar por pantalla % de trabajadores con horas extras.

f) Presentar por pantalla el promedio de salarios.

g) Buscar y mostrar recibo de pago para trabajador Programación III - Lic. Errol Vargas Marchena
CASO N# 2

▪ Para entregar el 30 de Junio

▪ Valor 5%

Programación III - Lic. Errol Vargas Marchena

También podría gustarte