Como crear mis propias excepciones
Hola que tal ojala me pueda alguien ayudar
Lo que requiero es generar una excepcion... Si entra en un bloque if determinado es cuando se genera la instruccion y lo que quiero es que termine
Como puedo hacer para que entre a ese bloque y se salga del Procedure en el que esta.
Gracias
Lo que requiero es generar una excepcion... Si entra en un bloque if determinado es cuando se genera la instruccion y lo que quiero es que termine
Como puedo hacer para que entre a ese bloque y se salga del Procedure en el que esta.
Gracias
Pon return; y se sale
FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN;
END IF;
RETURN x;
END;
FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN;
END IF;
RETURN x;
END;
Si....puedes poner RETURN y listo...pero eso es solo una soluci贸n a este caso particular. El tratamiento de errores es un tema fundamental al dise帽ar tus programas, ademas PL/SQL tiene, a diferencia de otros lenguajes, unas estructuras muy simples y flexibles para realizar un buen tratamiento de errores.
Ahora si, respondiendo a tu pregunta original:
una exception propia es como un tipo de variable, la tenes que declarar en la cabecera del programa como el resto de las variables. Luego lo que tenes que hacer en tu programa es usar la instrucci贸n RAISE <<exception>> para que se dirija el bloque de exceptions mas pr貌ximo y trate de resolver este problema.
Creo que un ejemplo vale mas:
DECLARE
l_V1 varchar2(5);
l_V2 number;
e_errorpropio EXCEPTION; --aca es donde declaro la exception
BEGIN
select campo1
, campo2
from tabla
where condiciones;
if condicion 1 then
RAISE e_errorpropio; --aca entro en el bloque de exceptions con un error propio
else
<<algun comando>>;
end if;
EXCEPTION
when e_errorpropio then
<<lo que quieras hacer cuando salga este error>>;
when others then
<<si salta por cualquier otro lado>>;
END;
como vez esta estructura te sirve tanto para procedures , functions o cualquier tipo de programa....
Cualquier cosa no dudes en escribirme..
Ahora si, respondiendo a tu pregunta original:
una exception propia es como un tipo de variable, la tenes que declarar en la cabecera del programa como el resto de las variables. Luego lo que tenes que hacer en tu programa es usar la instrucci贸n RAISE <<exception>> para que se dirija el bloque de exceptions mas pr貌ximo y trate de resolver este problema.
Creo que un ejemplo vale mas:
DECLARE
l_V1 varchar2(5);
l_V2 number;
e_errorpropio EXCEPTION; --aca es donde declaro la exception
BEGIN
select campo1
, campo2
from tabla
where condiciones;
if condicion 1 then
RAISE e_errorpropio; --aca entro en el bloque de exceptions con un error propio
else
<<algun comando>>;
end if;
EXCEPTION
when e_errorpropio then
<<lo que quieras hacer cuando salga este error>>;
when others then
<<si salta por cualquier otro lado>>;
END;
como vez esta estructura te sirve tanto para procedures , functions o cualquier tipo de programa....
Cualquier cosa no dudes en escribirme..
