EXCEPTIONS 1).PREDEFINED EXCEPTIONS declare ename varchar2(20); esal nm!er(10); !e"#n selec$ %rs$&name'salar #n$ ename'esal *rm em+lees ,here em+leed-100; d!ms&$+$.+$&l#ne(enameesal); e/ce+$#n ,hen n&da$a&*nd $hen d!ms&$+$.+$&l#ne(n); ,hen $&man&r,s $hen d!ms&$+$.+$&l#ne(sssss); ,hen $hers $hen d!ms&$+$.+$&l#ne(dddddd); end; 2).NONPREDEFINED EXCEPTION declare m&e/ce+$#n e/ce+$#n; +ra"ma&e/ce+$#nn#$(m&e/ce+$#n'01300); !e"#n #nser$ #n$ $a! vales(1'#nd#a); #nser$ #n$ $a! vales(2's); #nser$ #n$ $a! vales(4'nll); e/ce+$#n ,hen 5er&d#v#de $hen d!ms&$+$.+$&l#ne(all errrr); errrr); ,hen m&e/ce+$#n $hen d!ms&$+$.+$&l#ne(cann$ #nser$ nll vales); end; selec$ 6 *rm $a!
In e/ce+$#ns' !$h +rede%ned and nn +rede%ned are #m+l#c#$l #nv7ed ! $he racle. In +rede%ned e/ce+$#ns ,e 8s$ re*er $he e/ce+$#n #n $he e/ce+$#n !lc7. In nn +rede%ned e/ce+$#n ,e name $he e/ce+$#n and assc#a$e $he errr nm!er ,#$h $he name $hr"h +ra"ma e/ce+$#nn#$ ,h#ch #n $rn d#rec$s $he cm+#ler $ $he e/ce+$#n sec$#n and re*er $he named e/ce+$#n $ +rcess *r$her.
EXCEPTION PROP9:9TION
E/ce+$#ns are als ra#sed #n
Declara$#n Sec$#n
E/ec$a!le Sec$#n
E/ce+$#n Sec$#n
I* $he e/ce+$#ns are ra#sed #n e/ec$a!le sec$#n $hse e/ce+$#ns are handled s#n" e#$her #nner !lc7 r an $er !lc7. E" !e"#n declare a nm!er(2)-12; !e"#n a-124;
d!ms&$+$.+$&l#ne(a); e/ce+$#n ,hen vale&errr $hen d!ms&$+$.+$&l#ne(s#5e e/ceeded); end; e/ce+$#n ,hen vale&errr $hen d!ms&$+$.+$&l#ne(+ls chec7 s#5e); end; E"2 !e"#n declare a nm!er(2)-12; !e"#n a-124; d!ms&$+$.+$&l#ne(a); end; e/ce+$#n ,hen vale&errr $hen d!ms&$+$.+$&l#ne(+ls chec7 s#5e); end;
a-12; d!ms&$+$.+$&l#ne(a); e/ce+$#n ,hen vale&errr $hen d!ms&$+$.+$&l#ne(s#5e e/ceeded); end; e/ce+$#n ,hen vale&errr $hen d!ms&$+$.+$&l#ne(+ls chec7 s#5e); end; =ser De%ned E/ce+$#n ,#$h Ra#se >e,rd declare / nm!er(2)-?/; nm!er(2)-?; 5 nm!er(2); ! e/ce+$#n; !e"#n 5-/@; d!ms&$+$.+$&l#ne(5); #* 5A40 $hen ra#se !; end #*; e/ce+$#n ,hen ! $hen d!ms&$+$.+$&l#ne(#$ #s a ser de%ned e/ce+$#n); end;
/ nm!er(2)-?/; nm!er(2)-?; 5 nm!er(2); ! e/ce+$#n; !e"#n 5-/@; d!ms&$+$.+$&l#ne(5); #* 5A40 $hen ra#se !; end #*; end; O$+$ =nhandled ser de%ne E/ce+$#n R9ISIN: Prede%ned E/ce+$#n 1) declare vsal em+.salarB$+e; a e/ce+$#n; !e"#n selec$ salar #n$ vsal *rm em+ ,here em+leed-10; #* vsalA1000 $hen ra#se a; else +da$e em+ se$ salar-vsal@400 ,here em+leed-10; end #*; e/ce+$#n ,hen a $hen d!ms&$+$.+$&l#ne(s#5e e/ceed); end; selec$ 6 *rm em+
2) declare v em+Br,$+e; crsr c1 #s selec$ 6 #n$ v *rm em+ ,here em+leed-104; !e"#n +en c1; *e$ch c1 #n$ v; #* c1B*nd $hen d!ms&$+$.+$&l#ne(v.%rs$&name v.las$&namev.salar); else ra#se n&da$a&*nd; end #*; e/ce+$#n ,hen n&da$a&*nd $hen d!ms&$+$.+$&l#ne(em+ n$ val#d n); end; 4) declare v em+Br,$+e; crsr c1 #s selec$ 6 #n$ v *rm em+ ,here 8!d-IT&PRO"; !e"#n +en c1; *e$ch c1 #n$ v; #* c1Bn$*nd $hen ra#se n&da$a&*nd; else
d!ms&$+$.+$&l#ne(v.%rs$&namev.salar); end #*; clse c1; e/ce+$#n ,hen n&da$a&*nd $hen d!ms&$+$.+$&l#ne(8! n$ val#d #d); end; EXCEPTION Ra#sed #n E/ce+$#n sec$#n declare a1 e/ce+$#n; a2 e/ce+$#n; !e"#n !e"#n ra#se a1; e/ce+$#n ,hen a1 $hen d!ms&$+$.+$&l#ne(a1 handled); ra#se a2; end; e/ce+$#n ,hen a2 $hen d!ms&$+$.+$&l#ne(a2 handled); end; ERROR TR9PPIN: F=NCTION declare vsal em+Br,$+e; !e"#n selec$ 6 #n$ vsal *rm em+ ,here em+leed-104;
d!ms&$+$.+$&l#ne(vsal.%rs$&name vsal.salar); d!ms&$+$.+$&l#ne(slcde); d!ms&$+$.+$&l#ne(slerrm); end; O=TP=T 9le/ander 123 0 OR90000 nrmal' sccess*l cm+le$#n S$a$emen$ +rcessed. 0 means sccess*l cm+le$ed R9ISE&9PPGIC9TION&ERROR declare vsal em+Br,$+e; a e/ce+$#n; !e"#n selec$ 6 #n$ vsal *rm em+ ,here em+leed-104; #* vsal.salarA1H000 $hen ra#se a; else +da$e em+ se$ salar-vsal.salar@H000 ,here em+leed-104; d!ms&$+$.+$&l#ne(+da$ed sccess*l); end #*; e/ce+$#n ,hen a $hen ra#se&a++l#ca$#n&errr(20100'salar #s h#"h); end; O=TP=T
OR920100salar #s h#"h S++se ,e can "#ve Ra#se&a++l#ca$#n&errr(20100'salar #s h#"h); ORA-21000: error number argument to raise_application_error of 20100 is out of range
Errr Nm!er Ran"es !e$,een 20000 $ 20 Errr Js" 12 Charac$ers GKJL9JMF:TR9E: