Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Prioridad en excepciones?

Estas en el tema de Prioridad en excepciones? en el foro de Oracle en Foros del Web. BUenas, necesito su ayuda. quiero saber si hay algun tipo de prioridad al ejecutar excepciones.... por ejemplo estoy probando esto: set serveroutput on; DECLARE VAR ...
  #1 (permalink)  
Antiguo 15/08/2008, 08:55
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 16 años, 5 meses
Puntos: 0
Prioridad en excepciones?

BUenas, necesito su ayuda. quiero saber si hay algun tipo de prioridad al ejecutar excepciones....

por ejemplo estoy probando esto:

set serveroutput on;
DECLARE
VAR varchar(2);
BEGIN

IF (select region_id into var from s_dept ) and (8/0) = 1 THEN
dbms_output.put_line('ESTOY EN EL IF');
END IF;

EXCEPTION

WHEN TOO_MANY_ROWS THEN
dbms_output.put_line('EXCEPCION TOO_MANY_ROWS CAPTURADA');
WHEN ZERO_DIVIDE THEN
dbms_output.put_line('EXCEPCION ZERO_DIVIDE CAPTURADA');
WHEN OTHERS THEN
dbms_output.put_line('SALTO OTHERS');
END;
/
SHOW ERRORS

lo que necesito saber es que se ejecuta antes dentro de un if, si el TOO_MANY_ROWS o el ZERO_DIVIDE.

Igualmente el select ese no me funciona...si no es esa que otra excepcion puedo probar dentro del if?

saludos
  #2 (permalink)  
Antiguo 15/08/2008, 09:19
 
Fecha de Ingreso: junio-2008
Ubicación: D.F.
Mensajes: 62
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Prioridad en excepciones?

Que Tal,


1.- El select no lo puedes meter dentro del If ya que no tienes con que compararlo, pero si podrías ponerlo antes del if

2.- El Orden en que se levantarán las excepciones es el mismo orden en el que se encuentrán las instrucciones en el programa,
es decir de arriba hacia abajo y de izquierda a dercha.

3.- Para levantar otra excepción dentro del if podrías poner algomo como esto IF ((1+'A' = 3) and (8/0) = 1) THEN, esto te
levantaría un WHEN OTHERS. Sin embargo debes de tener en cuenta que en tu If tienes un AND por lo tanto si la primera
condición no se cumple, y no hay error entonces ni siquiera se ejecutará la segunda instrucción por lo que no te
levantaría la excepción de ZERO_DIVIDE, sino que continuaría con el proceso.


Espero que te sea de Utilidad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:14.