memoriales de excepciones previas varias en GuatemalaDescripción completa
Descripción completa
EXCEPCIONES PERENTORIASDescripción completa
Clasificación de Las Excepciones ProcesalesDescripción completa
Descripción completa
Descripción completa
maanDescripción completa
Descripción completa
ittDescripción completa
Excepcion Dilatoria de Falta de Personalidad de Guatemala.Descripción completa
Uso de try catch y de excepciones en Java a fondo.Descripción completa
PRINCIPIO DE INTERVENCIÓN, EN EL DERECHO INTERNACIONAL PÚBLICO.Descripción completa
Auto Que Resuelve Excepciones
Documento que contiene una buena explicación sobre las excepciones previas y de fondo que pueden formularse en un proceso ejecutivo singular.Descripción completa
Descripción completa
Modulo de la EJRLB sobre Excepciones previas y Proceso ejecutivo
Descripción completa
Marco Besteiro y Miguel Rodríguez Rod ríguez
Excepciones
Excepciones. Las excepciones en C# ofrecen un modo estructurado, uniforme y con seguridad de tipos para el manejo de situaciones de error tanto a nivel de sistema como a nivel de aplicación. El mecanismo de excepciones de C# es similar al de C++, con las siguientes diferencias: - En C#, las excepciones son instancias de tipos clase derivados de la clase Syst Syst em. Except xcept i on. En C++, cualquier valor de cualquier tipo puede ser utilizado para representar una excepción. - En C#, un bloque f i nal l y puede ser utilizado para escribir código que se ejecute tanto si se da una excepción como si no se da. En C++ no existe esa posibilidad si no es duplicando código. - En C#, las excepciones de sistema tales como desbordamiento, división por cero y desreferencias nulas tienen clases de excepción bien definidas y condiciones de error a nivel de aplicación asociadas.
La c lase System.Exception. System.Exception. Exceptt i on es el tipo base de todas las excepciones. Entre sus La clase Syst em. Excep propiedades más importantes están: es s age: es una propiedad de sólo lectura que contiene una descripción de la - Mess causa de la excepción (en forma de cadena legible por el ser humano). xcept i on: es una propiedad de sólo lectura que contiene la excepción - I nner Exce interna de la excepción. Si su valor es distinto de nul l , indica que la excepción actual ha sido lanzada en respuesta a otra excepción (que es a la que se llama la excepción interna).
El valor de estas propiedades puede ser especificado en el constructor de la clase Syst Syst em. Excep xcept i on.
Lanzamiento Lanzamiento de Excepcio nes. Las excepciones pueden ser lanzadas de dos modos: - Mediante la sentencia throw: Lanza la excepción de modo inmediato e incondicional. En ningún caso vuelve el control a la sentencia siguiente al throw. - Durante la ejecución de sentencias y expresiones C# se pueden dar situaciones en las que la operación no pueda completarse de modo normal y se lance una excepción. Por ejemplo, una división entera por cero lanza la excepción Syst Syst em. Di vi deB deByZer yZer oExce oExcept pt i on.
Manejo de Excepciones. h- f i nal l y. Las excepciones se manejan mediante una sentencia t r y- c at c h-
Por ejemplo:
1/4
Marco Besteiro y Miguel Rodríguez
Excepciones
try { s t r i ng s = nul l ; x. Mi Fun( s) ; } cat ch ( Ar gument Nul l Except i on e) { Consol e. Wr i t eLi ne( " {0} Pr i mer a excepci ón capt ur ada" , e) ; } cat ch ( Except i on e) { Consol e. Wr i t eLi ne( " {0} Segunda excepci ón capt ur ada" , e) ; }
Cuando se lanza una excepción desde el código que está entre las llaves de la cláusula t r y, el sistema busca la primera cláusula cat ch que pueda manejar el tipo de excepción que se ha lanzado (el tipo de excepción ha de coincidir con el del parámetro que espera la cláusula cat ch o bien ser de un tipo derivado al que espera la cláusula cat ch). Si no se encuentra la cláusula cat ch adecuada se sigue buscando la excepción en el punto del código desde el que se ha llamado al método que contiene la cláusula t r y donde se ha lanzado la excepción. Esta operación se repite hasta encontrar una cláusula cat ch que maneje (también se dice “capt ur e”) la excepción. Es importante tener en cuenta que si se desea que una cláusula cat ch capture cualquier excepción ha de definirse sin parámetros. Una vez se ha encontrado la cláusula cat ch que maneja la excepción, se transfiere el control a la primera sentencia de tal cláusula. Antes de ejecutar la primera sentencia de la cláusula cat ch, se ejecutan todas las cláusulas f i nal l y de las sentencias t r y anidadas a la que captura la excepción. Si no se encuentra una cláusula cat ch puede ocurrir una de las dos opciones siguientes: - Si la búsqueda llega a un constructor st at i c o a un inicializador de campos st at i c , se lanza una excepción Syst em. TypeI ni ci al i zat i onExcept i on en el punto en el que se invocó al constructor. El campo I nner Except i on de la TypeI ni ci al i zat i onExcept i on excepción contiene la excepción originalmente lanzada. - Si la búsqueda llega al código que inicialmente comenzó el t hr ead o el proceso, la ejecución del t hr ead o el proceso finaliza. Ejemplo: usi ng Syst em; cl ass Mi Cl ase { publ i c st at i c voi d Mai n( ) { Mi Cl ase x = new Mi Cl ase( ) ; try { s t r i ng s = nul l ;
2/4
Marco Besteiro y Miguel Rodríguez
Excepciones
x. Mi Fun( s) ; } / / Capt ur a de l a excepci ón ( más especí f i ca) : cat ch ( Ar gument Nul l Except i on e) { Consol e. Wr i t eLi ne( " {0} Pr i mera excepci ón capt ur ada " , e) ; } / / Capt ur a de l a excepci ón (menos especí f i ca) : cat ch ( Except i on e) { Consol e. Wr i t eLi ne( " {0} Segunda excepci ón capt ur ada ", e) ; } } publ i c voi d Mi Fun( st r i ng s) { i f ( s == nul l ) t hr ow new Ar gument Nul l Except i on( ) ; } }
La salida es:
Figura 9.1
Clases de Excepci ón m ás comun es. Las excepciones de la tabla 9.1 son lanzadas debido a ciertas operaciones ilegales relativamente comunes:
Excepción
Causa Se lanza cuando falla un intento de reservar memoria mediante el operador new. Se lanza cuando la pila de ejecución se
Syst em. Out Of Memor yExcept i on
Syst em. St ackOver f l owExcept i on
3/4
Marco Besteiro y Miguel Rodríguez
Excepciones
llena por tener demasiadas llamadas a método pendientes. Situación que suele darse en recursiones muy profundas. Syst em. Nul l Ref erenceExcept i on Se lanza cuando se pretende acceder mediante una referencia nul l a un supuesto objeto. Syst em. TypeI ni t i al i zat i onExcept i on Se lanza cuando un constructor st at i c lanza una excepción y no existe una cláusula cat ch que la capture. Syst em. I nval i dCast Except i on Se lanza cuando falla en tiempo de ejecución una conversión de un tipo base o interface a un tipo derivado. Syst em. Ar r ayTypeMi smat chExcept i on Se lanza cuando se intenta almacenar un elemento de un tipo no adecuado en un array. Syst em. I ndexOut Of RangeExcept i on Se lanza cuando se intenta acceder a un array mediante un índice menor que cero o mayor que el límite del array. Syst em. Mul t i cast Not Support edExcept i on Se lanza cuando se intenta combinar dos delegates no nulos, debido a que el tipo delegate no tiene como tipo de retorno voi d. Syst em. Ar i t hmet i cExcept i on Es la clase base de las excepciones que se dan durante las operaciones aritméticas, tales como Di vi deByZer oExcept i on y Over f l owExcept i on. Syst em. Di vi deByZer oExcept i on Se lanza cuando se intenta dividir un valor de tipo integral por cero. Syst em. Over f l owExcept i on Se lanza cuando una operación aritmética causa un desbordamiento en un contexto “checked”. Tabla 9.1