DPRN2 U3 A1 Gudg

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

Programacin .

NET II
Unidad 3.

Actividad 1. Crisis del Software

UNADM
Unidad 3
Actividad 1
Crisis
del
Software
AL12524075
Guillermo Durn Garca

Programacin .NET II
Unidad 3.

Actividad 1. Crisis del Software

Analizar un tipo de error mediante un caso de tu eleccin y relacionarlo con los


conceptos de errores de formato, errores de captura y situaciones inesperadas, sigue
estos pasos:
1. Investiga las causas y consecuencias del tipo de error ocurrido.
2. Explica detalladamente en qu consiste el tipo de error ocurrido, e identifica si fue de formato,
por error de captura, situaciones inesperadas u otro tipo de error. Integra sus caractersticas y
argumenta por qu consideras que representa el tipo de error mencionado.
3. Integra el desarrollo de tu actividad en un documento con cartula y los datos de identificacin
completos, posteriormente gurdala con la nomenclatura DPRN2_U3_A1_XXYZ. Sustituye las
XX por las dos primeras letras de tu primer nombre, la Y por tu primer apellido y la Z por tu
segundo apellido.
4. Consulta los criterios de evaluacin de la actividad A1_Escala_de_evaluacion_dprn2_u3.docx
para que los consideres en el desarrollo de la misma.
5. Ingresa al Foro con subida de archivos y participa respondiendo a los planteamientos y lnea
de discusin. Redacta en el cuadro de texto una breve resea de tu actividad no mayor a cinco
renglones y a continuacin adjunta tu archivo. Al finalizar da clic en enviar para publicarlo y est
accesible a tus compaeros y docente en lnea.
6. Ingresa a la participacin de uno de tus compaeros, y lee detenidamente su actividad,
analzala y realiza un comentario mencionando las aportaciones a tu propia comprensin sobre
el tema.
7. Espera y atiende la retroalimentacin correspondiente.
8. Revisa tambin la Rbrica general de participacin en foros (que puedes consultar en el
apartado Material de apoyo) para que consideres los aspectos a evaluar en las participaciones en
foros.

Programacin .NET II
Unidad 3.

Actividad 1. Crisis del Software

En Visual C#, una aplicacin ejecutable se genera haciendo clic en Generar en el


men Generar (o presionando CTRL+MAYS+B). Puede generar e iniciar la
aplicacin de un solo paso presionando F5 o haciendo clic en Ejecutar en el
men Depurar.

La compilacin requiere la entrada de los archivos del proyecto en el compilador


de C#, que convierte el cdigo fuente en lenguaje intermedio de Microsoft (MSIL) y
despus une el MSIL a los metadatos, recursos, manifiestos y otros mdulos, si
existen, para crear un ensamblado. Un ensamblado es un archivo ejecutable que
normalmente tiene una extensin .exe o .dll. A medida que desarrolle la aplicacin,
puede que desee generar una versin de depuracin para probarla y ver cmo
funciona. Por ltimo, cuando todo sea correcto, crear una versin de lanzamiento
que distribuir a los clientes.

Errores de compilacin
Si hay errores de sintaxis de C#, o si no es posible resolver identificadores en un
tipo o miembro conocido, la compilacin no finalizar correctamente y ver una
lista de errores en la Lista de errores, que aparece de forma predeterminada justo
debajo del editor de cdigo. Puede hacer doble clic en un mensaje de error para ir
a la lnea de cdigo en la que se produjo el error.

Los mensajes de error del compilador de C# suelen ser muy claros y descriptivos,
pero si no consigue determinar el problema, puede ir a la pgina de Ayuda del

Programacin .NET II
Unidad 3.

Actividad 1. Crisis del Software

mensaje presionando F1 con el mensaje de error seleccionado en la lista de


errores. La pgina de Ayuda contiene informacin til adicional.

Configuraciones de lanzamiento y de depuracin


Mientras siga trabajando en el proyecto, es muy probable que desee generar la
aplicacin con la configuracin de depuracin, que le permite ver el valor de las
variables y controlar la ejecucin en el depurador. Tambin puede crear y probar
generaciones en la configuracin de lanzamiento para comprobar que no se ha
introducido ningn error que slo se manifieste en uno u otro tipo de compilacin.
En la programacin con .NET Framework, estos errores son muy raros, pero
pueden producirse.

Excepciones en C# (CSharp)
Cuando durante la ejecucin de un programa ocurre un error que impide su
continuacin, por ejemplo, una entrada incorrecta de datos o un formato de salida
no correcto, C# lanza una excepcin, que si no se captura da lugar a un mensaje
de error y detiene la ejecucin (las excepciones se lanzan, no ocurren). Ahora si lo
que deseamos es que la ejecucin del programa no se detenga, habr que
capturarla y manejarla adecuadamente en un intento de reanudar la ejecucin.

Las excepciones en C# son objetos de subclases de Exception. Por ejemplo, el


espacio de nombres System define la clase base SystemException para las
excepciones predefinidas; por ejemplo: aritmticas, de formato, intentar acceder a
un elemento de una matriz con un ndice fuera de lmites, etc. Para capturar una
excepcin hay que hacer dos cosas: una, poner a prueba el cdigo que puede
lanzar excepciones dentro de un bloque try; y dos, manejar la excepcin cundo
se lance, en un bloque catch. Por ejemplo:
try {
//Cdigo que puede lanzar una excepcin

Programacin .NET II
Unidad 3.

Actividad 1. Crisis del Software

Console.WriteLine("{0:f} + {1:f} = {2:d}", a, b, c);


} catch(Exception e) {
//Manejar una excepcin de la clase Exception
System.Console.WriteLine("Error: " + e.Message);
}
En el ejemplo anterior, cundo se lance una excepcin del tipo Exception por que
se produjo un error debido a la ejecucin de una operacin de entrada/salida, el
objeto e almacenar la informacin relativa al error ocurrido, informacin que
puede ser manipulada a travs de las propiedades y mtodos de su clase; por
ejemplo, Message muestra un mensaje indicando qu error ocurri. En el ejemplo
anterior, al especificar que el tipo de excepciones que se desea atrapar son de la
clase Exception, cabe cualquier excepcin de cualquier clase derivada
de Exception. Si quisiramos filtrar un tipo particular de excepciones deberemos
indicarlo explcitamente. Por ejemplo, cundo ejecute el siguiente programa,
observa que lanza una excepcin de la clase FormatException por utilizar un
formato d para mostrar un valor double. Por tanto, dicha excepcin ser atrapada
por el primer bloque catch. Cundo una excepcin se atrapa, se considera
manipulada.
using System;
class Test {
public static void Main(string[] args) {
double a = 10, b = 20, c = 0;
try {
c = a + b;
Console.WriteLine("{0:f} + {1:f} = {2:d}", a, b, c);
} catch(FormatException) {
Console.WriteLine("Ha ocurrido un error de formato");
} catch(Exception e) {
Console.WriteLine("Error: "+ e.Message);
}
}
}

Errores: try - catch - finally

En ocasiones es imprescindible manejar el comportamiento de nuestra aplicacin


cuando surge un error.
Por ejemplo debemos exigir que se cierre un DataReader si se produce un error,

Programacin .NET II
Unidad 3.

Actividad 1. Crisis del Software

que se cierre un fichero XML si surge un error de lectura, o que se controle una
llamada a un WebService al que no tenemos acceso ninguno.
As pues, el objetivo de este artculo es mostrar el uso bsico de los comandos try,
catch y finally.

Por ejemplo vamos a controlar si surge algn error cuando enviamos un Email
mediante nuestro cdigo C# (error que, dicho sea de paso, sucede a menudo).
Recordando de nuestro artculo de "envo de emails con ASP.NET":
MailMessage Email = new MailMessage(Origen, Destino, Asunto, Mensaje);
SmtpClient smtp = new SmtpClient();
try
{
smtp.Send(Email);
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
Como vemos, tratamos de enviar un mensaje, y si nos da error lo mostraremos en
nuestro Label (que suponemos est en nuestra pgina .aspx). De modo que
dentro de "try" colocaremos el cdigo que queremos vigilar y dentro del "catch"
diremos lo que queremos hacer si sucede una excepcin.
Cuando estemos ms avanzados en el pequeo mundo de la captura de errores,
veremos que se pueden anidar tantos catch como queramos, ponindoles a cada
uno como parmetro el tipo de excepcin que queramos controlar. Pero esto no lo
vamos a explicar en este artculo, con la idea de mantenernos en un nivel bsico/
de iniciacin.
En cuanto al "finally", es el comando al que se acudir siempre, tanto si sucede un
error como si no. Por ejemplo:
MailMessage Email = new MailMessage(Origen, Destino, Asunto, Mensaje);
SmtpClient smtp = new SmtpClient();
try

Programacin .NET II
Unidad 3.

Actividad 1. Crisis del Software


{
smtp.Send(Email);
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
finally
{
Label2.Text = "Ya hemos hecho el intento de envo de mensaje";
}

Si no sucediera un error, de forma que el mail se mande correctamente, al acabar


el envo llegaremos al finally y escribiremos sobre la Label2... pero si sucede un
error, cuando lo hayamos tratado en el catch tambin llegaremos al finally y
escribiremos sobre la Label2.
El finally es muy til en los ejemplos que hemos comentado al inicio. Por ejemplo
si trabajamos con un DataReader, pondremos un rbol try - catch - finally en el que
el catch controlara los errores y el finally se encargara de cerrar el DataReader,
de modo que ste quedara cerrado surgiera o no un error.
Para finalizar, es importante destacar que no hay que usar try - catch - finally en
todos los sitios, ni imponer el control de errores de forma genrica sobre
numerosas lneas de cdigo. Hay que darse cuenta de que al usarlos estamos
utilizando una vigilancia exhaustiva de todo lo que sucede, por lo que gastamos
recursos y empeorar la eficiencia de nuestra aplicacin.
Por tanto se recomienda usarlos slo cuando haga falta y tratando de utilizar otros
remedios menos gastadores. Por ejemplo, en lugar de hacer esto:
try
{
resultado = a / b;
}
catch
{
// Si ha dado error es que b = 0. Le daremos el valor de 0 a resultado,
aunque obviamente no vale eso.
resultado = 0;
}

Programacin .NET II
Unidad 3.

Actividad 1. Crisis del Software

hay que hacer esto:


if (b != 0)
resultado = a / b;
else
resultado = 0;

Bibliografia
https://msdn.microsoft.com/es-es/library/ms173083(v=vs.90).aspx
http://www.subgurim.net/Articulos/csharp/110/introduccion-al-control-de-errores-trycatch-finally.aspx

También podría gustarte