Sei sulla pagina 1di 64

Programacin .

NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Ingeniera en Desarrollo de Software


8 cuatrimestre

Programa de la asignatura:
Programacin .NET II

Unidad 3. Manipulacin de errores y conjuntos de objetos

Clave:
150930934

Universidad Abierta y a Distancia de Mxico


UnADM

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

ndice
Unidad 3. Manipulacin de errores y conjuntos de objetos ................................................ 3
Presentacin de la Unidad ................................................................................................. 3
Propsitos.......................................................................................................................... 3
Competencia especfica..................................................................................................... 4
3.1. Control de errores en C Sharp .................................................................................... 4
3.1.1. Uso de los comandos para el control de errores: try, catch..................................... 5
3.1.2. Desarrollo de controles de errores personalizados ................................................ 20
Actividad 1. La crisis del software .................................................................................... 25
Actividad 2. Manejo seguro de un objeto ......................................................................... 26
3.2. Conjunto de objetos .................................................................................................. 27
3.2.1. Arreglos ................................................................................................................. 27
Actividad 3. Conjuntos de objetos mediante arreglos en C Sharp .................................... 40
3.2.2. Colecciones ........................................................................................................... 41
Actividad 4. Conjuntos de objetos mediante colecciones en C Sharp .............................. 58
Autoevaluacin ................................................................................................................ 59
Evidencia de aprendizaje. Control de errores en grupo de objetos en C Sharp................ 59
Para saber ms ............................................................................................................... 61
Fuentes de consulta ........................................................................................................ 62

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Unidad 3. Manipulacin de errores y conjuntos de objetos


Presentacin de la Unidad
Bienvenido a la nueva unidad de Programacin en .Net II.
Ahora aprenders conceptos fundamentales de la programacin orientada a objetos con
un enfoque de utilizacin del lenguaje C Sharp.
Buscar errores y manejarlos adecuadamente es un principio fundamental para disear
software correctamente, ((Ferguson, Patterson y Beres, 2005, p. 359). En teora cuando
se escribe un cdigo se pretende que todo est correctamente escrito y funcione. En el
mundo real esto raramente es cierto. Es ms, algunos errores no son previstos ni
controlados en el momento de programar; por ejemplo, si la conexin de red se
interrumpe los servidores de bases de datos dejan de funcionar, y los archivos de disco
pueden no contar con los contenidos que las aplicaciones consideran que contienen. Esto
tambin debe ser controlado y tratar de no dejar al usuario final con una aplicacin
detenida, sin ninguna informacin acerca de qu hacer en ciertos casos (la clsica
pantalla azul cuando una aplicacin entra en una situacin no controlada). Es importante
revisar este tema porque permitir controlar programas ante situacin inesperadas.
En la segunda parte de la unidad se revisar el tema de tablas, vectores, matrices o
array (que algunos autores traducen por arreglo), que son un conjunto de elementos del
mismo tipo, tendrn el mismo nombre y ocuparn un espacio contiguo en la memoria de
la computadora. La trascendencia de este tema es el aprender a manipular un conjunto de
objetos con un mismo nombre, lo que permite referirse a varios elementos semejantes
que contengan informacin diferente. Si se planteara esa situacin con los conocimientos
actuales de .NET, sera necesario crear una variable con nombre diferente por cada dato
que se necesitara.
Se concluir esta parte trabajando con colecciones, el siguiente paso de los arreglos,
donde es posible guardar con un mismo nombre un conjunto de objetos diferentes (de
diferentes tipos), y no es necesario especificar un tamao fijo.
Estos dos conceptos: errores y conjunto de objetos, te sern de gran utilidad en el
desarrollo de tu carrera.

Propsitos
Al trmino de esta unidad logrars:
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Entender el concepto de manejo de errores y


utilizar la tcnica de excepcin.

Programar tus propias excepciones para el


manejo de errores muy personales.

Entender el concepto de arreglos y la forma de


construirlos dentro de C Sharp.

Manejar los mtodos que se necesitan para


manipular un conjunto de objetos.

Definir y comprender la utilidad de las


colecciones.

Competencia especfica
Crear aplicaciones estables y controlar los estados no
esperados con base en el control de errores de la plataforma .NET,
y su manipulacin en grupos de objetos al emplear la herramienta
de colecciones.

3.1. Control de errores en C Sharp


La herramienta de .Net que se utiliza para el control de errores en tiempo de ejecucin es
el common language runtime (entorno en tiempo de ejecucin de lenguaje comn, CLR).
Uno de los principales objetivos del CLR .NET, respecto a los errores en tiempo de
ejecucin, es evitarlos (como la gestin automtica de la memoria) o al menos capturarlos
en tiempo de ejecucin (mediante un sistema fuertemente tipado) (Archer, 2010). Aun as,
hay algunos errores que slo pueden ser capturados en tiempo de ejecucin, para stos
existe un mecanismo llamado excepciones.
Las excepciones son el procedimiento recomendado en la plataforma .NET, para
controlar los errores que se produzcan durante la ejecucin de las aplicaciones
(divisiones por cero, lectura de archivos no disponibles, datos incorrectamente teclados,
etctera). Esto es una diferencia respecto a su implementacin en otros lenguajes, como
el caso de C++ tradicional, lo que proporciona una cierta homogeneidad, consistencia y
sencillez, entre los diferentes lenguajes que la componen.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Tradicionalmente, el sistema que en otros lenguajes y plataformas se ha usado para


informar estos errores consiste, simplemente, en hacer que los mtodos devolvieran
cdigos que informasen sobre si se han ejecutado correctamente o, en caso contrario,
cul fue el error (Gonzlez, s. f.).
Una excepcin en el mbito de la programacin (recordemos que las excepciones son un
control de errores utilizados por todos los lenguajes actuales de programacin), se define
como cualquier condicin de error o comportamiento inesperado que se ha detectado en
un programa en ejecucin, la podemos encontrar en la base de conocimientos de
Microsoft (MSDN, 2013f):
Frente al anterior mtodo de capturar errores en los lenguajes de programacin, las
excepciones proporcionan las dos ventajas siguientes:

Claridad: el uso de cdigos especiales para informar del error suele dificultar la
legibilidad de la fuente, en tanto que se mezclan las instrucciones de la lgica de ste
con las del tratamiento de los errores que pudiesen producirse durante la ejecucin.

Ms informacin: a partir del valor de un cdigo de error puede ser difcil deducir sus
causas; conseguirlo muchas veces implica consultar la documentacin proporcionada
por el fabricante sobre el mtodo que lo provoc, pero puede que no especifique
claramente su causa. Por el contrario, una excepcin es un objeto que cuenta con
campos que describen las causas del error, y a cuyo tipo suele drsele un nombre que
resuma claramente su causa, el cual est indicado por las clases que definen el
Framework.

Por estas ventajas, en la actualidad la mayora de los lenguajes manejan los errores con
base en estas caractersticas. A continuacin se abordarn cmo manejar esta tecnologa
de control de errores.

3.1.1. Uso de los comandos para el control de errores: try, catch


El manejo de las excepciones se conforma de tres comandos que consisten en las
palabras reservadas: try, catch y finally (Archer, 2010).
La base de conocimiento de Microsoft (MSDN, 2013m) define el uso de los comandos try,
catch y finally de la siguiente manera: consiste en obtener y utilizar recursos en un
bloque try, tratar circunstancias excepcionales en el bloque catch y liberar los recursos
en el bloque finally, esto se puede explicar de una manera sencilla en el siguiente
diagrama:
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Bloque try {
Se escribe el cdigo que debe ser controlado con respecto a,
o en relacin con, los errores en tiempo de ejecucin.
Por ejemplo:
}

A = B / C;

Bloque catch {
Se escribe el cdigo que se ejecutar cuando se produzca
un error en el bloque try.
Por ejemplo:
Console.WriteLine (Error la variable C no puede ser 0);

}
Bloque finally {
Se escribe el cdigo que se ejecutar independientemente de si se
produce un error o no en el bloque catch.
Por ejemplo:
Console.WriteLine (El cdigo continua ejecutndose);
}
Se deben respetar las siguientes reglas en cuanto al uso de comandos para el control de
errores:
1. Slo puede haber un bloque try.
2. Al menos deber existir un bloque catch por cada bloque try, pero puede haber ms de
uno para controlar diferentes errores.
3. El bloque finally es opcional, se puede o no incluir segn las necesidades del objeto.
Por ejemplo: cuando se manejan bases de datos es necesario cerrarlas, exista o no un

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

error en los procesos de operacin de la informacin. El bloque finally en estas


situaciones es sumamente til.
La forma en que funcionan estos bloques es sencilla y directa. Cuando una instruccin
fracasa en su objetivo y no puede continuar (se detecta una situacin excepcional),
devuelve un objeto excepcin. Este objeto excepcin deber ser capturado (cachado) por
el bloque catch, en donde se decide qu accin se debe tomar; es decir, el manejo que
se debe hacer del error o la forma en que se abordar.
Es necesario especificar qu tipo de errores (excepciones) se espera que ocurran para
ser capturados.
A continuacin se expone un ejemplo para entenderlo:
En un proyecto de desarrollo de un objeto, es necesario leer un nmero entero desde el
teclado y guardarlo en una variable de tipo int. Esto se puede realizar con el siguiente
cdigo.

Si se ejecuta el programa escribiendo un nmero 3 cuando la aplicacin lo solicite, la


salida es el siguiente nmero:
Escribe un nmero entero: 3
El nmero escrito fue: 3
Se puede argumentar lo siguiente: este programa se ejecuta correctamente; Se infiere
que es un programa escrito de forma correcta.
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Siguiendo con la situacin propuesta, se plantea que el usuario no escriba un nmero,


sino la palabra hola. El programa se detiene de forma inesperada y enva la siguiente
ventana:

Ejemplo de ejecucin incorrecta del programa

Ahora se puede argumentar que el programa se ejecuta de forma incorrecta. Se infiere


que es un programa escrito de manera incorrecta.
En este caso, completamente fuera del control del desarrollador, el programa no puede
forzar al usuario a que escriba de forma correcta lo que se le solicita. Este tipo de
problemas deben ser analizados con ms detalle por el desarrollador, porque,
posiblemente, algunas de las capturas del usuario final sean malintencionadas (el hecho
de escribir palabras en lugar de nmeros); pero en ocasiones puede tratarse de errores
de percepcin; por ejemplo, en lugar de 30 se escribe 3O (el nmero tres y la letra O). Si
se ejecuta de esta forma, el error es el mismo; es decir, es un error de captura aun
cuando no haya sido con mala intencin.
Es tarea del desarrollador controlar este tipo de errores y as evitar que el programa se
detenga de forma inesperada; para ello deber proporcionar una serie de opciones con el
fin de que el programa se autocontrole, y si debe terminar lo realice de forma controlada
o, como dicen algunos autores, de forma limpia (Ferguson, Patterson y Beres, 2005).
En el ejemplo se deben colocar estas instrucciones entre bloques try y catch, para que
controlen de forma correcta las acciones de escribir un nmero en formato inadecuado, y

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

no esperar que el programa se detenga de manera repentina. Aqu es necesario reparar


en un cuestionamiento importante: qu tipo de error se espera?
Eso puede verse en la siguiente imagen, que corresponde a la parte superior de la figura
anterior.

En este caso se espera un error del tipo FormatException, que puede traducirse como
Excepcin por un mal formato. Se puede controlar si se reescribe el programa de la
siguiente manera:

Si se ejecuta el programa y se escribe la palabra hola, la salida ser la siguiente:


Escribe un nmero entero: hola
Escribiste el dato 'hola' el cual no es un nmero
Sin aparecer la pantalla de error.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Pero si el programa se ejecutara tecleando el nmero 3, la salida sera la misma que se


observ anteriormente:
Escribe un nmero entero: 3
El nmero escrito fue: 3
Se puede observar que en el programa se han agregado dos bloques al reescribir el
cdigo, despus de identificado el error Excepcin por un mal formato:
La parte try

En ella se escribe el cdigo que puede producir errores en el momento de la ejecucin.


El bloque catch

En este caso se enva al usuario un comentario en el que se indica que se produjo un


error.
Al agregar este control se obtiene un programa que permite, al identificar un error,
terminar de forma controlada su ejecucin.
Se puede observar en el cdigo que la instruccin:

Esta es la instruccin que detiene el programa para poder observar los resultados (hasta
que no se presione la tecla [enter]). Se debe ejecutar sin importar lo que ocurra, una
manera clara que indicar esto se muestra a continuacin:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

10

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Puede observarse que el comportamiento es exactamente igual que el programa anterior,


pero se ha controlado el error y codificado su operacin de una manera ms clara acorde
con los estndares de .NET.
El bloque finally es muy utilizado por aplicaciones que deben cerrar de manera correcta,
independientemente de si se ejecutaron o no con errores. Un caso tpico es cuando se
cierran bases de datos despus de haber operado sobre la informacin contenida.

En el bloque catch se observa esta instruccin:

Se espera capturar un error del tipo FormatException, que ser devuelto en un objeto
llamado fe (puede ser cualquier nombre vlido de variable en C Sharp). Una buena
prctica de programacin es utilizar las letras maysculas que compongan la excepcin,
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

11

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

segn la base de datos de MSDN (2013g). Este objeto tiene una gran cantidad de
mtodos que permite conocer con mucho detalle el error que se produjo, en qu parte del
programa apareci, etctera. Siempre se debe capturar el objeto que contiene informacin
del error aunque, como en este caso, no se utiliza por ser un ejemplo muy sencillo; pero
con instrucciones como fe.toString(), se podra contar con una explicacin ms amplia
del error.
Se ejecuta nuevamente el programa, pero en esta ocasin se teclea el nmero 3.1 y se
observa el siguiente error:
Escribe un nmero entero: 3.1
Escribiste el dato '3.1' el cual no es un nmero
Esto no es un error porque 3.1 s es un nmero. No es un nmero entero, pero s es
nmero. Para concluir, puede decirse que la claridad y el control de los mensajes de
error es entera responsabilidad del desarrollador.
Ahora que se cuenta con elementos para tener una mejor idea sobre el comportamiento
de las excepciones en C Sharp mediante .NET, es conveniente definir una serie de
conceptos importantes para utilizarlos de manera eficiente.
Si se tiene un programa que llama a un objeto y el objeto llama a un mtodo que lanza
una excepcin, se inicia un proceso recursivo. Primero se espera que el mtodo que
lanz la excepcin tenga cdigo para su control; si no lo tiene se espera que el objeto
procese la excepcin; si este no tiene cdigo para su control, se espera que el programa
inicial que llam al objeto controle el problema; si ste no tiene cdigo de control, el
programa se detiene y muestra la ventana de error. A esto se le conoce como
propagacin de la excepcin. (Archer, 2010).

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

12

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Programa que
llama a un objeto

El objeto llama a
un mtodo
Inicio de un proceso
recursivo

El mtodo lanza una


excepcin

El mtodo cuenta
con cdigo
Node
control

Contina
ejecucin

Se controla
el error
S
No

Contina
ejecucin

Se controla
el error
El objeto cuenta
con cdigo de
control

S
El programa
cuenta con cdigo
de control

Se controla
el error
No

El programa se
detiene
inesperadamente

Contina
ejecucin

Fin

Esquema de propagacin de excepcin

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

13

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Las excepciones, finalmente, son objetos y tienen toda una jerarqua de herencia. Existe
una gran cantidad para controlar cualquier situacin inesperada en la ejecucin de un
programa.
Algunos de estos objetos se pueden observar en el siguiente diagrama:
Object

Exception

ExcepcionesPropias

ArithmeticException

DivideByZeroException

IOException

SystemException

ArgumentException

FileNotFoundException

ArgumentNullException

Diagrama basado en la jerarqua indicada en MSDN (2013i)

Esta jerarqua muestra, de manera muy simplificada, la complejidad de los objetos que se
pueden recuperar en la instruccin catch.
Se considera importante realizar la siguiente aclaracin sobre el diagrama:

ExcepcionesPropias

Indica que son excepciones creadas por quien realiza el


objeto, y pueden ser desarrolladas a partir de cualquier
punto de la jerarqua. Slo por ejemplificar se hereda de
Exception. En el siguiente punto se tratar este tema con
ms profundidad.

Por otra parte, es recomendable que todas las instrucciones del tipo IO (input/output)
sobre los medios de recursos de hardware (disco duro, memorias USB, impresoras,
etctera.), deben ser utilizadas entre los bloques try y catch (Michaellis, 2010).

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

14

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

A continuacin se propone un ejemplo de este proceso, donde se desarrollar un


programa que escriba en un archivo de texto en el disco C, en un directorio llamado
puntonet un archivo de nombre informacin.txt, este archivo tendr como contenido la
palabra hola. El cdigo se muestra a continuacin.

Si se ejecuta el programa, es posible darse cuenta de que en el directorio (debe crearse


como un primer paso) existe un archivo llamado temp.txt y contiene la palabra hola. Se
puede ejecutar sin los bloques try y catch, pero la recomendacin de los autores es
utilizar esta sintaxis porque otorga una mayor seguridad en la funcionalidad.
Si se borra del disco duro el directorio puntonet y se ejecuta el programa. Se observar el
siguiente error:
System.IO.DirectoryNotFoundException: No se puede encontrar una parte de la ruta
de acceso 'c:\puntonet\temp.txt'.
en System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
en System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, I
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

15

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

nt32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions o


ptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy,
Boolea
n useLongPath, Boolean checkHost)
en System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
en EscribirArchivo.Program.Main(String[] args) en c:\WorkSpaceVisualStudio\Un
iversidad UnNAD\EscribirArchivo\EscribirArchivo\Program.cs:lnea 12
Se observa que se ha producido una excepcin en particular:
DirectoryNotFoundException (error: el directorio no fue encontrado).
En conclusin, el resultado previsto es un error muy general: IOExcepcion (excepcin en
general de entrada y salida), pero debera ser ms especfico:
DirectoryNotFoundException (excepcin al no encontrase el directorio). Esto se logra al
modificar el programa de la siguiente manera.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

16

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

El mensaje que ahora aparece es: Error: Debes crear primero el directorio. Tambin se
observar en el cdigo que se cuenta con dos salidas para el error. La primera es para
uno muy especfico, la no existencia del directorio donde se crear el archivo; mientras
que el segundo es muy general, para cualquiera producido en el momento de ingresar al
disco duro.
Este orden es muy importante. Cuando una instruccin try tiene varios catch, deben ser
ordenados desde los errores muy especficos hasta los ms generales. Supngase que
se cambia el orden de las instrucciones catch de la forma en que se indica en el siguiente
cdigo:

Se observa un error indicado por el compilador, que sealar que una clusula catch
previa ya detecta todas las excepciones de este tipo o de tipo superior. Segn lo
indica Ferguson, Patterson y Beres (2005) Los catch deben ser ordenados de la captura
del error ms especfico al error ms general (p. 363).
Regresando al cdigo de la representacin anterior, y ejecutar de nuevo el programa para
que se cree el archivo de texto. Se quitar el permiso de escritura sobre ese archivo. Esto
no es un tema de programacin pero el proceso es muy sencillo, y permite ejemplificar la
captura de otros errores en C Sharp.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

17

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Si se realizan los siguientes pasos:


1. Entrar a la ventana de comandos de MS-DOS y escribir:
C:\windows\system32\attrib c:\puntonet\temp.txt +r
2. Al regresar al programa y ejecutarlo se observar que aparece una ventana con el
siguiente error:

Error de acceso de ruta

Se observa que se cuenta con una nueva excepcin que no se ha controlado, y salta a las
dos instrucciones catch.
Esta nueva excepcin es de un tipo nuevo, pertenece a las excepciones de control de
seguridad impuestas por el sistema operativo, para asegurar que no se daarn archivos
en el sistema. Son parte de las credenciales (as se llaman los permisos) que proporciona
la clave del usuario, por medio del cual se ingresa al sistema Windows. Su control se
muestra en el siguiente cdigo:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

18

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

El compilador ayuda a colocar la excepcin en el punto adecuado; marca error si se pone


en otro lugar.
Para terminar con este subtema, es de resaltarla importancia de controlar el flujo sin
errores de un programa, lo que permitir que la aplicacin se mantenga estable cuando
los usuarios, de manera intencional o no, introduzcan datos errneos. No olvides
ejecutar, desde la ventana de MS-DOS, el siguiente comando para permitir que se escriba
sobre el archivo:
C:\windows\system32\attrib c:\puntonet\temp.txt -r

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

19

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

3.1.2. Desarrollo de controles de errores personalizados


Como se observ en el subtema anterior, el control de situaciones no esperadas (errores)
es de suma importancia en el desarrollo de software confiable, pues permitir confiar a la
ejecucin de un programa no slo el manejo seguro de la informacin, sino incluso tareas
consideradas crticas, como el manejo de equipos mdicos o los vehculos de la
actualidad.
En C Sharp ese control de errores, o control de excepciones, se basa en los comandos
try, catch y finally. Igualmente, como se coment en el tema anterior, existen dos
categoras de excepciones bajo la clase Exception, en C Sharp: las predefinidas del
entorno de ejecucin (common language runtime, CLR) que derivan de
System.Exception, y las definidas por el usuario en la aplicacin. Existen decenas de
excepciones que pueden ser controladas desde C Sharp y predefinidas por el CLR;
algunas de ellas se muestran a continuacin:
Excepcin
ArithmeticException
DivideByZeroException
FileNotFoundException
FormatException
IndexOutOfRangeException
IOException
NullReferenceException
OverflowException
OutOfMemoryException

Descripcin
Desbordamiento por una operacin aritmtica.
Error por una divisin entre cero.
El archivo no fue encontrado.
El formato del dato es incorrecto.
El ndice es mayor que el tamao de la matriz o coleccin
utilizada.
Errores de entrada y salida de informacin.
Un dato miembro sin inicializar.
El dato no puede guardar el valor que se le indica.
Se termin la memoria.

Tabla. Listado de algunas excepciones en C Sharp. Nota: la lista completa se puede consultar en la base de
conocimientos de MSDN (2013 h).

En esta breve lista se puede observar el grado de control sobre los errores posibles al
programar en C Sharp. Aun as, en ocasiones puede requerirse la creacin de
excepciones propias por dos razones:
1. Se trata de un error nuevo y, por lo tanto, no considerado en las excepciones
estndares que proporciona la plataforma .Net.
2. Se desea controlar situaciones posibles en la aplicacin, con base en el estndar de
excepciones propuesto por .Net.
La primera situacin es un tanto difcil de que ocurra, pues la biblioteca proporcionada por
el lenguaje es muy completa. La segunda es muy recurrente en la industria de
desarrollo de software, porque se refiere al control de situaciones especficas del negocio

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

20

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

donde se utilizar el programa; por ejemplo: si la aplicacin se ejecutar en una escuela


donde la calificacin mnima aprobatoria es de 7.0, esa es una regla del negocio de esa
escuela en particular.
Si se desea que los usuarios distingan, mediante programacin, ciertas condiciones de
error de otras, es posible crear sus propias excepciones definidas por ellos mismos; .NET
Framework proporciona una jerarqua de clases de excepcin que, en ltima instancia,
deriva de la clase base Exception. Cuando se creen es recomendable finalizar el nombre
de la clase definida por el usuario con la palabra "Excepcin" (MSDN, 2013e).
En MSDN (2013e) se recomienda que, si se define una nueva excepcin, se debe
implementar tres constructores; tal como se muestra en el ejemplo:

Como puede observarse, se hereda de ApplicationException. Se puede heredar de


Exception, pero Microsoft menciona que la manera correcta es de
ApplicationException, porque Exception se produce por la interaccin con el
Framework .Net; pero ApplicationException se produce por la interaccin con un
usuario. Esta excepcin supone un medio para establecer diferencias entre excepciones
definidas por aplicaciones y excepciones definidas por el sistema (MSDN, 2013a).
Se debe llamar a estos tres constructores porque estn definidos en la clase padre:
ApplicationException. Al sobreescribirlos, se agrega una nueva excepcin a la biblioteca
proporcionada por C Sharp.
En resumen, las sugerencias que propone Microsoft (Michaellis, 2010) para el desarrollo
de excepciones propias son las siguientes:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

21

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

1. Finaliza el nombre de tu clase personalizada excepcin con el sufijo Exception, por


ejemplo: ErrorEnEdadException, SueldoNoEncontradoException, etctera.
2. Si la frase est compuesta de varias palabras, inicia cada una de ellas con letra
mayscula, como se ve en los ejemplos anteriores.
3. La excepcin debe ser serializable (proceso de codificacin donde un objeto se
convierte en un conjunto de bytes, y se puede almacenar en un medio como el disco duro
o la memoria USB). Si se hereda de Exception o de ApplicationException ya no es
necesario hacer ese proceso.
4. Se recomienda implementar tres constructores bsicos: el primero sin parmetros,
el segundo con un mensaje como parmetro, y el tercero con posibilidad de pasar una
excepcin interna anidada.
Se exponen los conceptos mencionados mediante el siguiente ejemplo:
En una empresa se desarrolla un programa donde uno de los datos a capturar es la edad
del trabajador, que debe estar entre los 18 y los 65 aos (valores vlidos autorizados por
el IMSS para desempearse en un puesto administrativo). Se requiere desarrollar una
excepcin que sea lanzada cuando se capture un valor de edad que pase de este rango,
en los dos sentidos, para valores de edad menores de 18 aos y mayores de 65. Se
iniciar llamndola EdadFueraDeRangoException.
La excepcin que resolvera este problema se muestra a continuacin.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

22

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

La primera clase, EdadFueraDeRangoException, se hereda de AplicationException.


Como se indic en las recomendaciones de Microsoft, se implementaron los tres
constructores indicados (polimorfismo en los constructores, visto en la unidad 2).

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

23

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

}
La segunda clase, program, en su programa principal main, captura la excepcin
EdadFueraDeRango. La parte try llama un mtodo leerEdad, ste captura la excepcin
del sistema FormatException.
En el bloque finally se hace una revisin de la edad, si est fuera del rango indicado por
el IMSS, se lanza una excepcin; el comando throw es el propuesto por C Sharp para
lanzarlas. Es posible lanzar una excepcin con cualquiera de los tres constructores. Esto
permite personalizar el error generado por esta aplicacin.

Ahora se requiere integrar la siguiente modificacin: el IMSS permite que una persona
trabaje si tiene ms de 18 aos y menos de 65. Pero por las caractersticas de la
empresa, en un puesto la edad permitida debe ser entre 25 y 40 aos. Es posible utilizar
esta misma excepcin si se modifica el lanzamiento con el siguiente cdigo.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

24

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

La excepcin se ha vuelto muy general, lo que permite que una misma sirva para capturar
diferentes situaciones.
Para concluir este tema, debe hacerse nfasis en que, aunque el sistema de excepciones
de C# es una herramienta muy eficiente que permite, hasta cierto punto, controlar
imprevistos, nada puede sustituir a una programacin cuidadosa. El propio Stroustrup
(1997), cientfico de la computacin y catedrtico en la Universidad A&M de Texas, quien
desarroll el lenguaje C++, advierte que Aunque las excepciones se pueden usar para
sistematizar el manejo de errores, cuando se adopta este esquema, debe prestarse
atencin para que cuando se lance una excepcin no cause ms problemas de los que
pretende resolver. Es decir, se debe atender la seguridad de las excepciones.
Curiosamente, las consideraciones sobre seguridad del mecanismo de excepciones
conducen frecuentemente a un cdigo ms simple y manejable, (Stroustrup, 1997, p.
345).
Con las excepciones, adems de tener un mejor control sobre los errores, tambin se
tendr un cdigo ms simple.

Actividad 1. La crisis del software


El propsito de esta actividad es que analices un tipo de error mediante un caso y lo
relaciones con los conceptos de errores de formato, errores de captura y situaciones
inesperadas revisados en este tema.
1. Revisa el planteamiento que te har llegar tu Facilitador(a).
2. Investiga las causas y consecuencias del tipo de error ocurrido.
3. Redacta en media cuartilla un reporte donde menciones el tipo de error
ocurrido: de formato, por error de captura o situaciones inesperadas. Integra sus
caractersticas y argumenta por qu consideras que representa el tipo de error
mencionado.
4. Guarda la actividad con el nombre DPRN2_U3_A1_XXYZ. Sustituye las XX por

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

25

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

las dos primeras letras de tu primer nombre, la Y por tu primer apellido y la Z por
tu segundo apellido.
5. Coloca tu trabajo en la Base de Datos.
6. Comenta el reporte de uno (una) de tus compaeros(as), como mnimo, sobre
el tipo de error identificado. Recuerda que tus comentarios no deben ser
agresivos, sino constructivos.
* Consulta la rbrica para elaborar el cuadro comparativo que encontrars en el archivo
Criterios de evaluacin de las actividades de la Unidad 3 para conocer los parmetros
de evaluacin de esta actividad.

Actividad 2. Manejo seguro de un objeto


El propsito de la actividad es que soluciones un problema en el que sea necesario dar
seguridad a la ejecucin de un programa en C Sharp, con base en las excepciones.
Para el desarrollo de la actividad, tu Facilitador(a) te har llegar un problema y las
indicaciones generales; debes asegurarte de que controlas todas las opciones de error,
para lo cual realizars los siguientes pasos:
1. Construye una clase del tipo que se requiera segn el planteamiento del
problema.
2. Integra los datos miembro.
3. Integra propiedades de lectura y escritura para cada dato miembro.
4. Desarrolla un programa que construya objetos, solicite los datos del usuario y, al
utilizar las propiedades del objeto, guarde los datos en l.
5. Construye las excepciones necesarias para controlar las reglas del negocio
indicadas en el planteamiento.
6. Integra a tu programa el control de las reglas del negocio construidas en el paso
anterior.
7. Integra un archivo de texto en el cual muestres las capturas de pantalla de cada
uno de los pasos de este proceso.
8. Una vez realizado tu programa, empaca todo tu proyecto en un archivo .zip
incluyendo el archivo de texto con las capturas de pantalla del procedimiento

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

26

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

realizado.
9. Guarda la actividad con el nombre DPRN2_U3_A2_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.
10. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin mediante la
herramienta Tarea.
* No olvides, consultar el documento Criterios de evaluacin de las actividades de la
Unidad 3 para conocer los parmetros de esta actividad.

3.2. Conjuntos de objetos


El almacenamiento de grupos de elementos de datos relacionados es un requisito bsico
de casi todas las aplicaciones de software; este grupo de elementos, tambin llamados
conjunto de objetos, se pueden guardar en la memoria de la computadora mediante dos
formas: arreglos y colecciones.
Es importante este almacenamiento porque un gran porcentaje de las aplicaciones
desarrolladas a nivel mundial estn dedicadas al proceso de la informacin, y los
conjuntos de objetos que guardan informacin son importantes.
Un conjunto de objetos es un grupo de objetos de software, similares en caractersticas,
pero diferentes en su contenido. Ejemplo: un objeto alumno sera una entidad de software
que guarda el nombre, su nmero de control. Un conjunto de objetos alumnos sera una
lista de ellos en la que se representan el nmero de control y nombre.
En este tema se trabajar con ambos conceptos con base en la propuesta de C Sharp
para el manejo de la informacin en conjuntos de datos, como se indic en el Tema 3.1.
Control de errores en C Sharp. Es necesario asegurarse de que el cdigo, al ejecutarse,
capture todos los errores. Esto es sumamente importante en relacin con un conjunto de
objetos.

3.2.1. Arreglos
Los arreglos son conjuntos de objetos que tienen un mismo tipo, nombre, y son
controlados por un ndice que los identifica (Deitel y Deitel, 2007). Pueden tener cualquier

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

27

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

longitud y almacenar miles o millones de datos; la condicin es que el tamao se debe


decidir al momento de crear el arreglo.
Imagina los arreglos como un grupo de cajas que son exactamente iguales, donde se
guardarn datos. Para poder identificarlas, tendrn un nmero que inicia en cero y termina
en n. A ese nmero se le llamar ndice porque permite identificar cada caja. Como
todos los elementos tienen el mismo nombre slo se identifican con un nmero. Pueden
almacenar tipos de referencia y de valor. El primero describe el lugar donde est el dato
guardado, pero no lo almacena. De almacenar el dato se encarga el segundo tipo, el de
valor (MSDN, 2013).
Esto se puede comprender mejor mediante un ejemplo. Visualiza la memoria de tu
computadora como un conjunto de celdas contiguas. Si cuentas con 2GB de memoria
RAM, tendrs 2 147 483 648 celdas numeradas, desde la cero hasta la 2 147 483 647. A
cada celda le cabe un byte (un nmero entre cero y 255). Si se aade que en la celda 2
345 450 guardas un nmero 100, almacenar una referencia significara guardar el nmero
2 345 450 que es la posicin de una celda, guardar su valor significara guardar el nmero
100 que tiene esa celda. Es decir, se tienen que realizar dos pasos para descubrir la
cantidad que se guarda en ese lugar:
1. Ir al nmero de celda.
2. Ver qu nmero guarda esa celda.
Guardar un valor significa que se est slo almacenado un dato, sin importar en dnde se
almacena en la memoria.
Los arreglos se clasifican de la siguiente manera:
a) Unidimensionales
Conjunto de elementos que slo tiene un ndice. Algunos autores los llaman vectores. Se
pueden definir de dos maneras: la primera se conforma de la siguiente sintaxis (MSDN,
2013n):
Tipo [ ] Nombre;
Nombre = new Tipo [numero_de_elementos];
La segunda la indica C Sharp, la cual permite hacer en slo un paso las dos instrucciones
anteriores:
Tipo [ ] Nombre = new Tipo[numero_de_elementos]
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

28

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Un ejemplo de definicin de un arreglo de esta manera se muestra a continuacin:

Que segn lo anterior es lo mismo a

Se define un arreglo con una sola instruccin. Este arreglo es de cinco elementos, todos
ellos llamados dato, diferenciados por un ndice: dato[0], dato[1], dato[2], dato[3], dato[4].
Los arreglos en C Sharp inician en 0.
La segunda forma de definir un arreglo unidimensional es la siguiente:
Tipo [ ] dato = new Tipo [ ] { datos . . . } ;
O tambin:
Tipo [ ] dato = { datos . . . } ;
En este caso, el nmero de datos indican el tamao del arreglo. A continuacin se expone
un ejemplo de cmo se define esto:

Que sera similar a:

En ambos casos se define un arreglo de cinco elementos llamados dato, que contienen
los nmeros: 2, 3, 6, 8, y 2. Esto se puede representar de la siguiente manera: dato[0]=2,
dato[1]=3, dato[2]=6, dato[3]=8 y dato[4]=2.
En el primer caso slo se define el arreglo, pero todos ellos inicializados con un cero. En
el segundo, tambin se define un arreglo, pero inicializado con los valores que estn
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

29

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

encerrados entre llaves. Nuestros arreglos tendrn un valor iniciar, ambos casos son
vlidos en C Sharp.
b) Multidimensionales
Un arreglo multidimensional con dos dimensiones se define como un conjunto de
elementos en el que, para hacer referencia a uno de ellos, se debe indicar su fila y la
columna donde est situado (Nash, 2010). Estas caractersticas, tener una fila y una
columna, se llaman matrices (en matemticas, una matriz es un conjunto de nmeros
ordenados en una tabla, y para identificarlos se necesita hacer referencia a su fila y
columna).
Conceptualmente, un arreglo multidimensional con dos dimensiones se asemeja a una
cuadrcula, tambin llamada matriz.
El siguiente ejemplo muestra una matriz de tres filas y tres columnas.

Un arreglo multidimensional con tres dimensiones se asemeja a un cubo. Las


dimensiones pueden continuar aunque no se representen de una manera conceptual (no
existen ejemplos en nuestro mundo real en donde podamos comparar ms de tres
dimensiones). No existe un lmite para el nmero de dimensiones que pueden ser
representadas en arreglos, pero s es conveniente considerar que el incremento de
consumo de memoria es exponencial. Observa la siguiente tabla; en todas las
dimensiones se suponen 10 elementos:

Dimensiones

Producto

Elementos

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

30

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

1
2
3
4
5

10
10X10
10X10X10
10X10X10x10
10X10X10X10x10

10
100
1 000
10 000
100 000

Tabla. Dimensiones

Como se puede observar, el nmero de dimensiones aumenta de forma exponencial los


registros que se necesitan en memoria, (recuerda que, finalmente, todo dato se
representa por un espacio en la memoria RAM). Si aumentamos las dimensiones,
aumentamos el consumo de este espacio.
Respecto a la forma de representacin, un arreglo de dos dimensiones se puede declarar
mediante el siguiente formato en C Sharp:
Tipo [ , ] dato;
dato = new Tipo [filas, columnas]
O bien:
Tipo [ , ] dato = new Tipo [filas, columnas]
Donde filas y columnas son el nmero de elementos que se quieren declarar en el arreglo.
Un ejemplo sera ste:

Equivalente a:

Si se requiere definir una matriz de tres filas por cuatro columnas, los elementos se
representan de esta manera:
dato[0,0], dato[0,1], dato[0,2], dato[0,3]
dato[1,0], dato[1,1], dato[1,2], dato[1,3]
dato[2,0], dato[2,1], dato[2,2], dato[2,3]
El mismo dato tambin puede declararse de la siguiente manera:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

31

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Tipo [ , ] dato = { Datos }


Un ejemplo de esto es lo siguiente:

La forma de definir un dato es slo cuestin de estilos del programador. Para el


compilador de C Sharp el proceso es indistinto.
Si se define un arreglo de tres filas por cuatro columnas con estos elementos: dato[0,0]=2
y dato[1,2]=0, es posible definir arreglos de cualquier nmero de dimensiones. Recuerda
que el lmite es el rpido agotamiento de la memoria.
Existe el concepto de matriz escalonada, que es una variacin del arreglo
multidimensional, una matriz de matrices. Es una matriz unidimensional, y cada elemento
en s mismo es una matriz. No es necesario que todas sean del mismo tamao (MSDN,
2013j).
A continuacin se expone un ejemplo:

Se define un arreglo de tres elementos, pero el primero de ellos tiene cinco; el segundo,
ocho; y el tercero, tres. A esto se le conoce como una matriz escalonada, y son llamadas
as por su similitud con el mismo concepto en matemticas.
Se propone un ejemplo ms para entender mejor estos conceptos: en una investigacin
de corte ambiental se requiere tomar la presin baromtrica, la temperatura mxima y la
temperatura mnima de cinco ciudades de la repblica mexicana en un da determinado.

Numero
1
2
3
4

Ciudad
Mxico, D. F.
Puebla, Pue.
Xalapa, Ver.
Tepic, Nay.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

32

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Mrida, Yuc.
Tabla. Grupo de ciudades

Se desarrollar un programa que solicite los datos al usuario y despus los muestre en
forma de una tabla que tenga el siguiente formato:

ndice

Ciudad

Presin

Temp.
mx.

Temp. mn.

Tabla. Formato

Y as sucesivamente. El cdigo se muestra a continuacin:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

33

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

34

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Si se ejecuta la aplicacin se obtendr la siguiente salida:


Para la ciudad: Mxico, D. F.
Cul es su presin baromtrica: 585
Cul es su temperatura mxima: 26
Cul es su temperatura mnima: 19
Para la ciudad: Puebla, Pue.
Cul es su presin baromtrica: 593
Cul es su temperatura mxima: 27
Cul es su temperatura mnima: 15
Para la ciudad: Xalapa, Ver.
Cul es su presin baromtrica: 862
Cul es su temperatura mxima: 28
Cul es su temperatura mnima: 12
Para la ciudad: Tepic, Nay.
Cul es su presin baromtrica: 746
Cul es su temperatura mxima: 32
Cul es su temperatura mnima: 20
Para la ciudad: Mrida, Yuc.
Cul es su presin baromtrica: 1016
Cul es su temperatura mxima: 28
Cul es su temperatura mnima: 18

Nm.
sucesivo
1
2
3
4
5

Ciudad

Presin

Mxico D.F.
Puebla. Pue.
Xalapa, Ver.
Tepic. Nay.
Mrida, Yuc.

585
593
862
746
1016

Temp.
mx.
26
27
28
32
28

Temp.
mn.
19
15
12
20
18

Tabla. Captura

Sin embargo, de manera general, no existe ninguna limitante para crear arreglos de
cualquier tipo, en este caso doubles y string. Los arreglos representan una informacin a
la que se accede a travs de uno o ms ndices, dependiendo del nmero de
dimensiones.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

35

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Qu pasa si se define un arreglo de tres elementos y se desea acceder al nmero cinco?


En el siguiente ejemplo se crear un objeto llamado alumno, el cual tendr como datos
miembro el nombre y edad del alumno, de tipo string e int, respectivamente. Se realizar
un constructor que recibir los dos datos y slo se le integrarn dos propiedades get para
recuperar ambos datos.
Al definir la clase alumno con los requerimientos dados en la propuesta, se observar el
siguiente cdigo:

Se crea el programa que lea los datos de tres alumnos y que nos permita consultar uno
de ellos al solicitar el nmero del alumno. La primera lnea debe tener la siguiente
instruccin e indicar que se utilizarn mtodos de la clase System para leer datos:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

36

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

37

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Si se ejecuta la aplicacin, se da de alta a tres alumnos y se solicitan los datos del ndice
dos y uno, se obtendr la siguiente salida:
Dame el nombre del alumno 0: MANUEL
Dame la edad del alumno 0: 20
Dame el nombre del alumno 1: JUAN
Dame la edad del alumno 1: 35
Dame el nombre del alumno 2: PEDRO
Dame la edad del alumno 2: 25
1.- Mostrar datos de un alumno
2.- Terminar
Tu opcin: 1
Escribe el ndice del alumno: 2
El alumno nmero: 2
El nombre es: PEDRO
La edad es: 25
1.- Mostrar datos de un alumno
2.- Terminar
Tu opcin: 1
Escribe el ndice del alumno: 1
El alumno nmero: 1
El nombre es: JUAN
La edad es: 35
1.- Mostrar datos de un alumno
2.- Terminar
Tu opcin: 2

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

38

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Si con los mismos datos se solicita el ndice cuatro, es posible observar el siguiente error:

Imagen de una excepcin no controlada por un arreglo fuera de rango

Como se revis en el Tema 3.1. Control de errores en C Sharp, es necesario que se


controlen los errores generados al manejar arreglos. Existen varias excepciones
asociadas con el manejo de esta informacin, una de ellas es
IndexOutOfRangeException, generada por solicitar un nmero de ndice mayor que los
elementos definidos en la inicializacin del arreglo, caso presentado en la imagen anterior.
Para finalizar este tema, se revisar el concepto de objeto que tienen los arreglos en C
Sharp. Como lo indica la base de conocimientos de Microsoft (MSDN, 2013), en C# los
arreglos son realmente objetos. Cuando se define un arreglo de cualquier nmero de
dimensiones se est definiendo un objeto que, adems de tener datos, tendr mtodos
que permitirn manejar la informacin.
El siguiente ejemplo muestra algunas funciones propias que aparecen al definir un
arreglo:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

39

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Como se observa, el arreglo a tiene propiedades como Length, y mtodos como


Average() o Sum(); existen muchos otros mtodos y propiedades que puedes consultar
en la base de conocimientos MSDN de Microsoft. Con el simple hecho de definir un
arreglo, se est definiendo un objeto, y podr disponer de mtodos que permitirn
manipular los datos.
Para concluir, se recuerda la definicin de arreglo, segn Ferguson (2005): conjunto finito
de datos, todos ellos del mismo tipo, con un mismo nombre e identificados por un ndice.

Actividad 3. Conjuntos de objetos mediante arreglos en C Sharp


El propsito de la actividad es que soluciones un problema en el que sea necesario
manejar arreglos en un programa en C Sharp.
Para el desarrollo de la actividad, tu Facilitador(a) te har llegar un problema en el que
debes utilizar arreglos de dos dimensiones.
1. Construye un programa y define una matriz de acuerdo con las indicaciones de
tu Facilitador(a).
2. Integra un archivo de texto en el cual muestres las capturas de pantalla de la
forma como funcion tu programa.
3. Integra a tu programa las funciones necesarias para que solicite todos los datos
desde el teclado que llenen la matriz.
4. Desarrolla las operaciones matemticas sobre la matriz.
5. Integra a tu programa la salida sobre la matriz resultado; coloca en cada rengln,
separado por espacios, los valores que conforman las diferentes filas de la matriz.
6. Integra un archivo de texto en el cual muestres las capturas de pantalla de cada
uno de los pasos del proceso.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

40

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

7. Una vez realizado tu programa, empaca todo tu proyecto en un archivo .zip;


incluye el archivo de texto con las capturas de pantalla del procedimiento
realizado.
8. Guarda la actividad con el nombre DPRN2_U3_A3_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.
9. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin mediante la
herramienta Tareas
* No olvides consultar el documento Rbrica de evaluacin de las actividades de la
Unidad 3 para conocer los parmetros de esta actividad.

3.2.2. Colecciones
Segn el tema anterior, un arreglo es un conjunto finito de datos, todos ellos del mismo
tipo, con un mismo nombre e identificados por un ndice (Ferguson, Patterson y Beres,
2005). Un conjunto finito de datos implica un problema. Imagina que te solicitan hacer un
programa en el que almacenars, en un arreglo, diferentes tipos de productos producidos
por una empresa. Cuando se te pide hacer el programa, la empresa produce cinco tipos
diferentes; te dicen que el incremento de nuevos tipos es un proceso muy lento por la
gran cantidad de trmites que se deben hacer, que aumentan a razn de uno o dos como
mximo cada ao. Una solucin que propones es crear un arreglo de 20 elementos; con
lo cual das una vida promedio a tu programa de 10 aos, segn los datos estadsticos
dados por los requisitos de la empresa. Imagina que por alguna razn no identificada,
durante la toma de los requerimientos, ellos registran 20 productos en slo dos aos.
Inmediatamente tu programa tendr problemas porque no podr controlar 25 productos,
pues est diseado en un arreglo de slo 20.
El problema anterior se presenta porque los arreglos son finitos; es decir, en el momento
que son definidos y antes de usarlos, se debe decidir el nmero de datos que se tendrn,
el cual no puede cambiar durante toda la vida del arreglo.
Una coleccin es una forma sencilla, pero no finita, de expresar un arreglo. Esto no
significa que sea infinito, sino que no se tiene por qu definir al inicio de su uso cuntos
elementos se tendrn; es decir, se puede agregar elemento tras elemento segn se
requiera; por supuesto existe un lmite establecido segn la memoria de la computadora,
el disco duro, el microprocesador, etctera. El trmino coleccin es traducido por muchos
autores como contenedor. Es una herramienta proporcionada por .NET Framework,

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

41

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

compuesta por clases especializadas para almacenamiento y recuperacin de datos


(Liberty, 2001).
Las colecciones son un conjunto de clases que permiten almacenar y recuperar datos
siguiendo conceptos de estructuras de datos, tales como listas, pilas, colas, rboles,
diccionarios, etctera. Al seleccionar una de ellas, es posible guardar informacin dentro
de la estructura, sin preocuparse de la forma en cmo se realiza esto y cundo se
recupera, porque no es necesario conocer los detalles de esta operacin. Como lo indican
Deitel y Deitel (2007), .NET Framework proporciona una serie de componentes
reutilizables llamados colecciones, que estn normalizadas para que las aplicaciones se
puedan compartir con facilidad, sin tener que preocuparse por los detalles de su
implementacin. Estn escritas para una amplia reutilizacin, diseadas para su ejecucin
rpida y uso eficiente de la memoria.
Existen varias clases (o colecciones) definidas por el Framework de .NET, algunas de las
ms importantes son listas y diccionarios, que se explicarn con detalle a continuacin
porque son el fundamento del resto de las colecciones. La primera guarda datos en forma
de objetos, la segunda en forma de pares de valores compuestos por llave-valor. El resto
funciona bajo alguno de estos dos principios, y slo cambian algunas caractersticas; por
ejemplo, si estn ordenadas o no, si se recuperan en el mismo orden en que se inserta la
informacin, etctera.
List
Es equivalente al concepto de una lista doblemente ligada. En esta clase o coleccin se
utilizar una lista y el tipo de elementos que sta puede guardar. Automticamente, el
Framework de .NET proporcionar una serie de propiedades y mtodos que permitirn
manipular los datos (los que t ingreses en la lista), tales como la longitud, buscar o borrar
un elemento, ordenarlo, encontrar el mximo, el mnimo, etctera. El siguiente cdigo es
un ejemplo de su uso.
Todos los programas debern llevar al inicio la siguiente instruccin:

Esto indica al compilador que se utilizarn las colecciones. El cdigo se muestra a


continuacin:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

42

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

43

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Diccionario
Es una coleccin de elementos conformados por un par, que tiene la siguiente estructura:
Llave Valor.
La informacin no es recuperada por un ndice, sino por un valor llave, tal como sucede
en el siguiente ejemplo: se desarrollar un diccionario conformado por el par, nmero de
control (un valor entero) y nombre (una cadena). Se da de alta la siguiente tabla:

Llave
345
245
123
667

Valor
Juan
Miguel
ngel
Pedro

Tabla. Ejemplo de informacin de un diccionario

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

44

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Si se guarda esta informacin en un diccionario y se desea recuperar algn dato, no es


posible preguntar qu informacin existe en el registro dos, porque no se maneja de esa
manera. La pregunta debe plantearse de esta forma: si tengo la llave 123, a qu valor le
corresponde?
Existe una serie de reglas para el manejo de los diccionarios en C Sharp.
Las llaves no pueden repetirse, pero no es trascendente si se repiten los valores. La
referencia slo se hace por la llave. Por ejemplo, en la tabla anterior puede ser posible
tener otro alumno de nombre ngel, pero debe tener otra llave para identificarlo. No es
posible tener dos llaves iguales que identifiquen a dos personas diferentes, sera similar a
pensar que existen dos personas con la misma CURP; por eso la CURP es una clave
nica de identificacin de las personas, en otras palabras es nuestra llave.
A continuacin se plantearn algunos ejemplos del uso de coleccin diccionario:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

45

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

46

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Existen otros contenedores en C Sharp para el manejo de la informacin. A continuacin


se mencionan algunos de los ms usados.

Queue (cola)
Representa una coleccin de objetos de tipo primero en entrar, primero en salir (MSDN,
2013b).
Son tiles para guardar informacin en el orden en que fueron recibidas, simulan una cola
de personas ante una caja y son atendidas en el orden que llegaron. Los objetos
almacenados en Queue se insertan en un extremo y se quitan del otro.
Se utiliza el mtodo Enqueue para poner en la cola un dato, Dequeue para quitarlo, Peek
para localizar el siguiente elemento, entre muchos otros.
A continuacin se expone un ejemplo de uso:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

47

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Si se ejecuta el programa, la salida ser:


Lista de datos guardados
0 Archivo.Txt
1 Archivo.Pdf
2 Archivo.Doc
3 Archivo.Ppt

Stack (pila)
Representa una coleccin LIFO (ltimo en entrar, primero en salir) de tamao variable, de
instancias del mismo tipo (MSDN, 2013d).
Las pilas son tiles para almacenar informacin y procesar la ltima que lleg. Los
objetos almacenados en un Stack se insertan en un extremo y se quitan en el otro.
Proporciona una serie de mtodos para el manejo de la informacin con base en el

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

48

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

principio bsico de la pila. Los mtodos ms importantes son Count, que indica cuntos
elementos se tiene en un contenedor; push, que guarda un elemento al inicio de la pila;
pop, que recupera el primer elemento al inicio de la pila. Existe tambin el mtodo
toArray, que convierte el contenido en un arreglo.
Se expone a continuacin un ejemplo de uso de pilas:

Si se ejecuta este programa, la salida ser:


Lista de datos guardados
0 Archivo.Ptt
1 Archivo.Doc
2 Archivo.Pdf
3 Archivo.Txt
Se observa que las primeras en mostrarse fueron las ltimas en ser impresas.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

49

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

SortedList (lista ordenada)


Representa una coleccin de pares clave/valor que se ordenan conforme a la clave
(MSDN, 2013c).
La clase genrica SortedList es un rbol de bsqueda binaria, que mantiene la
informacin constantemente ordenada con base, precisamente, en el concepto de rbol
binario. Este contenedor ya provee mecanismos para mantenerse constantemente
balanceado, y en el caso de eliminar elementos (que internamente se representan como
nodos de un rbol), tambin el balanceo ser de manera automtica.
SortedList requiere la implementacin de un comparador para ordenar y realizar
comparaciones (MSDN, 2013 c).
Un comparador es una clase que le indicar a la coleccin cmo se deben ordenar los
objetos. Hasta este momento no se ha tenido necesidad de indicar cmo se deben
ordenar los objetos dentro de una coleccin, porque los datos utilizados se ordenan de
manera natural, numrica o alfabtica. Pero en el caso de que se cuente con una
coleccin con los datos de un alumno tales como nombre, edad, sexo, semestre y carrera,
es necesario crear una clase especial que le indique a la coleccin por cul de los cinco
campos debe ser ordenado, o tambin si se necesita una combinacin de ellos (es posible
que por necesidad deba ordenarse segn sexo y edad). Por ejemplo, las listas de
alumnos se ordenan por apellido paterno, apellido materno y nombre. Se usan tres
campos, a esa clase se le llama comparador.
Un ejemplo de lo dicho es el siguiente: se requiere hacer una coleccin que guarde los
datos de los autos en un lote a la venta. Se conoce la placa, marca, modelo, color, ao y
un precio estimado de venta. Se necesita listarlos por placa, modelo o precio; sta ltima
caracterstica en dos opciones: de menor a mayor, o de mayor a menor. Para lo anterior
se necesitar el uso de un SortList.
La clase Auto tendra el siguiente cdigo:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

50

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

51

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Se necesitan definir cuatro comparadores para tener las cuatro diferentes formas de
ordenamiento solicitadas: 1) por placa; 2) por modelo o precio, pero ste en dos opciones:
3) de menor a mayor, y 4) de mayor a menor: tal como se muestra a continuacin.
Comparador por placa:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

52

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Comparador por modelo:

Comparador por precio descendente:

Comparador por precio ascendente:

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

53

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Si en el lote de autos se cuenta con los siguientes modelos:


Tabla. Existencias
Placa
Marca
YCS3932 Nissan
YTR1010 Ford
YFG2100 Volkswagen
YUH2010 Toyota
YAT1101 Honda

Modelo
Centra Lujo
Focus Bsico
Golf Estndar
Corola Tpico
Civic Sedan

Color
Perla
Rojo
Azul acero
Blanco
Gris plata

Ao
2000
2001
2000
2005
2010

Precio
$95,000.00
$80,000.00
$65,000.00
$90,000.00
$98,000.00

El programa principal mostrar el lote ordenado por placa, modelo, precio ascendente y
descendente. Esto se observa en el siguiente cdigo, en el que se utiliza un List para
generar los resultados.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

54

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

55

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

En el momento de la ejecucin del programa, se muestra la siguiente salida:


YCS3932 Nissan
Centra Lujo Perla 2000 95000
YTR1010 Ford
Focus Bsico Rojo 2001 80000
YFG2100 Volkswagen
Golf Estndar Azul Acero 2000 65000
YUH2010 Toyota
Corola Tpico Blanco 2005 90000
YAT1101 Honda
Civic Sedan Gris Plata 2010 98000
YAT1101 Honda
Civic Sedan Gris Plata 2010 98000
YCS3932 Nissan
Centra Lujo Perla 2000 95000
YFG2100 Volkswagen
Golf Estndar Azul Acero 2000 65000
YTR1010 Ford
Focus Bsico Rojo 2001 80000
YUH2010 Toyota
Corola Tpico Blanco 2005 90000
YCS3932 Nissan
Centra Lujo Perla 2000 95000
YAT1101 Honda
Civic Sedan Gris Plata 2010 98000

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

56

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

YUH2010 Toyota
Corola Tpico Blanco 2005 90000
YTR1010 Ford
Focus Bsico Rojo 2001 80000
YFG2100 Volkswagen
Golf Estndar Azul Acero 2000 65000
YFG2100 Volkswagen
Golf Estndar Azul Acero 2000 65000
YTR1010 Ford
Focus Bsico Rojo 2001 80000
YUH2010 Toyota
Corola Tpico Blanco 2005 90000
YCS3932 Nissan
Centra Lujo Perla 2000 95000
YAT1101 Honda
Civic Sedan Gris Plata 2010 98000
YAT1101 Honda
Civic Sedan Gris Plata 2010 98000
YCS3932 Nissan
Centra Lujo Perla 2000 95000
YUH2010 Toyota
Corola Tpico Blanco 2005 90000
YTR1010 Ford
Focus Bsico Rojo 2001 80000
YFG2100 Volkswagen
Golf Estndar Azul Acero 2000 65000

Cmo funciona el comparador que utiliza SortedList?


Su lgica de funcionamiento requiere indicaciones de cmo se ordenan dos de los valores
que ingresarn al SortedList, y el mtodo Sort lo aplicar a todo el conjunto de
elementos dentro de la coleccin. Se plantea un ejemplo: en la clase del lote de autos
ahora se desea desarrollar un comparador para ordenar por modelo.
Con base en el modelo de dos autos, se nombrar auto1 y auto2, se comparar el modelo
del auto1 con el del auto2 (comparacin alfanumrica donde A es menor que B, y as
sucesivamente, ANGEL es menor que MANUEL por las iniciales). Si son iguales, se
regresa un 0; si el modelo del auto1 es mayor que el del auto2, regresar un nmero

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

57

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

positivo que indica que no se deben intercambiar de posicin; si es lo contrario, el auto1


resulta menor que el auto2, se regresa un nmero negativo que indica que se deben
intercambiar. Es importante notar que se debe devolver un valor positivo o negativo, no
importa el nmero en s. Esto se codifica de la siguiente manera:

Es muy fcil obtener el valor positivo con base en una resta, cuando se trata de comparar
valores numricos. En las cadenas se utiliza el mtodo compareTo, de las que devuelve
un -1, +1 o cero. De esta manera se comparan cadenas.

Se concluye este tema con una recapitulacin acerca de la utilidad de las colecciones,
que permiten contener una gran cantidad de datos sin necesidad de definir su nmero
desde el inicio. La informacin se guarda sin preocuparse por los lmites de
almacenamiento y los mtodos de manejo de informacin, porque ya se encuentran
implementados; es posible tener acceso a ellos de forma directa con slo invocarlos.

Actividad 4. Conjuntos de objetos mediante colecciones en C Sharp


El propsito de la actividad es que soluciones un problema en el que sea necesario
utilizar una de las colecciones que proporciona el Framework de .NET en C Sharp.
Para el desarrollo de la actividad tu Facilitador(a) te har llegar un problema mediante el
cual debes crear un objeto; y este objeto debe ser agregado a un contenedor de los que
proporciona Framework de .NET; las operaciones de alta del objeto, listado del contenido
del contenedor y ordenamiento de los datos, se har mediante un men simple.
1. Construye el objeto solicitado con los datos y propiedades indicadas por tu
Facilitador(a); debes sobreescribir el mtodo ToString() y mostrar el contenido
del objeto en forma ordenada y clara.
2. Construye las dos clases comparadoras para que puedas ordenar la coleccin
por el dato solicitado.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

58

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

3. Desarrolla un men con las siguientes opciones:


a. Crea un nuevo objeto. Solicita los datos miembro y adicinalos al
contenedor.
b. Lista el contenido del contenedor.
c. Lista en forma ordenada por dos opciones el contenedor.
d. Debe terminar de forma correcta el programa.
4. Integra en el men el uso de la clase desarrollada, y los dos comparadores para
que funcionen las diferentes opciones del men.
5. Integra un archivo de texto en el que muestres las capturas de pantalla de cada
uno de los pasos de este proceso.
6. Una vez realizado tu programa, empaca todo tu proyecto en un archivo .zip,
donde incluyas el archivo de texto con las capturas de pantalla del procedimiento
realizado.
7. Guarda la actividad con el nombre DPRN2_U3_EA_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.
8. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin mediante la
herramienta Tareas.
* No olvides, consultar el documento Rubrica de evaluacin de las actividades de la
Unidad 3 para conocer los parmetros de esta actividad.

Autoevaluacin
Antes de desarrollar la evidencia de aprendizaje, realiza la autoevaluacin con el fin de
hacer un recuento general de la unidad; as como detectar aquellos temas que no has
comprendido en su totalidad y que necesites revisar nuevamente, o bien consultar con
tus compaeros(as) y Facilitador(a).
Para realizar la Autoevaluacin, ingresa al listado de actividades en el aula.

Evidencia de aprendizaje. Control de errores en grupo de objetos en C


Sharp
El propsito de la actividad es que soluciones un problema en el que sea necesario dar

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

59

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

seguridad a la ejecucin de un programa C Sharp, debes utilizar excepciones que


manejen un conjunto de objetos.
Para el desarrollo de la actividad, tu Facilitador(a) te har llegar un problema en el que
debes controlar una serie de situaciones con base en excepciones; para ello realizars
los siguientes pasos:
1. Construye una clase del tipo indicado por tu Facilitador(a).
2. Integra los datos miembro segn te indique tu Facilitador(a).
3. Integra propiedades de lectura y escritura para cada dato miembro.
4. Desarrolla un programa que construya objetos, solicite los datos del usuario y, a
partir de las propiedades del objeto guarde los datos en l.
5. Controla los errores producidos por la ejecucin de la aplicacin.
6. Construye las excepciones necesarias para controlar las reglas del negocio.
7. Integra a tu programa el control de las reglas del negocio construidas en el paso
anterior.
8. Integra un archivo de texto en el que muestres las capturas de pantalla de cada
uno de los pasos de este proceso.
9. Una vez concluido el desarrollo de tu programa, empaca todo tu proyecto en un
archivo .zip que incluya el archivo de texto con las capturas de pantalla del
procedimiento realizado.
10. Guarda la actividad con el nombre DPRN2_U3_A2_EA_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.
11. Enva el archivo a tu Facilitador(a) para recibir retroalimentacin mediante el
Portafolio de evidencias.
* No olvides, consultar el documento EA. Criterios de evaluacin U3 para conocer los
parmetros de evaluacin de esta actividad.

Cierre de la unidad

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

60

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Con esta unidad concluye tu asignatura Programacin .NET II. Los temas que se
abordaron redondean tus conocimientos de programacin orientados a objetos y te
muestran la importancia de los conocimientos previos, tales como la estructura de datos.
El tema de control de errores nos permite crear aplicaciones estables, donde se controlen
situaciones especiales que pueden provocar que alguna aplicacin interrumpa su
ejecucin en forma inesperada.
El tema de conjunto de objetos te permite visualizar la forma en que una aplicacin puede
manejar mayores volmenes de informacin.
Con estos dos temas has redondeado tus conocimientos de C Sharp, es momento de una
reflexin de todos lo visto. Es recomendable que investigues ms sobre objetos,
constructores, polimorfismo, sobrecarga, herencia y sobreescritura. Revisa su interaccin
con el control de errores.
Felicidades, llegaste al final de esta aventura.

Para saber ms
En esta seccin encontrars algunos recursos que es recomendable consultes, pues
encontrars ms informacin acerca de los principales conceptos revisados en la unidad,
tales como control de errores, colecciones y arreglos:
Referencia muy completa de las colecciones que proporciona C Sharp:

MSDN. (2013). Jerarqua de excepciones. Recuperado de


http://msdn.microsoft.com/es-es/library/z4c5tckx%28v=VS.80%29.aspx

Referencia muy completa de los usos de try-catch que nos proporciona C Sharp:

MSDN. (2013). Try-catch-finally (Referencia de C#). Recuperado de


http://msdn.microsoft.com/es-es/library/dszsf989.aspx

El libro de Jos Antonio Gonzlez Seco, El lenguaje de programacin C#, es un desarrollo


libre. Aunque es una versin muy anterior, los conceptos fundamentales no han
cambiado. Se encuentra disponible en la seccin Material de apoyo y tambin lo puedes
obtener de http://dis.um.es/~bmoros/privado/bibliografia/LibroC Sharp.pdf

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

61

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Consulta el manual completo de C Sharp (MSDN, 2013) disponible en la siguiente


direccin: http://msdn.microsoft.com/es-es/library/zkxk2fwf%28v=vs.90%29.aspx

Fuentes de consulta

Archer, T. (2010). A fondo C#, 2010. Madrid: McGraw-Hill.

Deitel, M. y Deitel, P. (2007). Cmo programar en C Sharp, 2a. ed. Madrid: Pearson.

Ferguson, J., Patterson, B. y Beres, J. (2005). La biblia de C#. Madrid: Anaya.

Gibbs, W. (1994). Softwares Chronic Crisis. Recuperado de


http://www.di.ufpe.br/~java/graduacao/referencias/SciAmSept1994.html

Gonzlez, J. (s. f.). Lenguaje de programacin en C#. Recuperado de


http://dis.um.es/~bmoros/privado/bibliografia/LibroCsharp.pdf

Liberty, J. (2001). Programming C#. Estados Unidos: Oreilly.

Michaellis, M. (2010). Essential C# 4.0. Estados Unidos: Addison Wesley.

Microsoft Corporation. (1999-2007). C# Language Specification Version 3.0.


Recuperado de http://www.microsoft.com/en-us/download/details.aspx?id=7029

MSDN. (2013a). ApplicationException (Clase). Recuperado de


http://msdn.microsoft.com/esx/library/system.applicationexception%28v=vs.80%29.aspx

_____________________________. (2013b). Clase genrica Queue. Recuperado de


http://msdn.microsoft.com/es-es/library/7977ey2c%28v=vs.80%29.aspx

______________________________. (2013c). Clase genrica SortedList.


Recuperado de
http://msdn.microsoft.com/es-es/library/ms132319%28v=vs.80%29.aspx

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

62

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

_____________________________. (2013d). Clase genrica Stack. Recuperado de


http://msdn.microsoft.com/es-es/library/3278tedw%28v=vs.80%29.aspx
_____________________________. (2013e). Cmo: Crear excepciones definidas por
el usuario. Recuperado de http://msdn.microsoft.com/eses/library/87cdya3t%28v=vs.80%29.aspx

_____________________________. (2013f). Controlar y generar excepciones.


Recuperado de http://msdn.microsoft.com/es-es/library/5b2yeyab.aspx

_____________________________. (2013g). Excepciones. Recuperado de


http://msdn.microsoft.com/es-es/library/vstudio/dd489406(v=vs.100).aspx

_____________________________. (201h). Exception (Clase). Recuperado de


http://msdn.microsoft.com/es-es/library/system.exception.aspx

_____________________________. (2013i). Jerarqua de excepciones. Recuperado


de http://msdn.microsoft.com/es-es/library/z4c5tckx%28v=VS.80%29.aspx
Fecha de consulta 20 de julio del 2013.

_____________________________. (2013j). Matrices y colecciones (Visual C#


Express). Recuperado de
http://msdn.microsoft.com/es-es/library/9ct4ey7x%28v=vs.90%29.aspx

_____________________________. (2013k). Manual del lenguaje C#. Recuperado de


http://msdn.microsoft.com/es-es/library/zkxk2fwf%28v=vs.90%29.aspx

_____________________________. (2013l). System.Collections.Generic (Espacio de


nombres). Recuperado de http://msdn.microsoft.com/eses/library/System.Collections.Generic.aspx

_____________________________. (2013m). Try-catch (Referencia de C#).


Recuperado de http://msdn.microsoft.com/eses/library/0yd65esw%28v=vs.110%29.aspx

_____________________________. (2013n). Try-catch-finally (Referencia de C#).


Recuperado de http://msdn.microsoft.com/es-es/library/dszsf989.aspx

_____________________________. (2013). Tutorial de matrices


http://msdn.microsoft.com/es-es/library/aa288453(v=vs.71).aspx

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

63

Programacin .NET II
Unidad 3. Manipulacin de errores y conjuntos de objetos

Nash, T. (2010), Accelerated C# 2010, Estados Unidos de Amrica: Apress.

Sharp, J. (2010). Microsoft Visual C# 2010. Estados Unidos de Amrica: Microsoft


Press.

Stroustrup, B. (1997). The C++ Programming Language, 3a. ed. Estados Unidos:
Addison-Wesley.

Troelsen A. (2010). Pro C# 2010 and the .NET 4 Platform. Estados Unidos de
Amrica: Apress.

Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Ingeniera en Desarrollo de Software

64

Potrebbero piacerti anche