PL SQL Programming Oracle PLSQL Tutorial

SQL>  create or replace  procedure p_validatezip (i_zipCode VARCHAR2)
  2  is
  3       e_tooShort EXCEPTION;
  4       e_tooLong  EXCEPTION;
  5       e_badZip   EXCEPTION;
  6       pragma exception_init(e_badZip, -20998);
  7       v_tempZip number:=to_number(i_zipCode);
  8  begin
  9       if length(i_zipCode)< 5 then
 10         raise e_tooShort;
 11       elsif  length(i_zipCode)> 6 then
 12         raise e_tooLong;
 13       end if;
 14  exception
 15       when e_tooLong then
 16          DBMS_OUTPUT.put_line('long zip');
 17          raise e_badZip;
 18       when e_tooShort then
 19          DBMS_OUTPUT.put_line('short zip');
 20       when VALUE_ERROR then
 21          DBMS_OUTPUT.put_line('non-numeric zip');
 22          raise e_badZip;
 23    end;
 24  /
Procedure created.
SQL>
SQL> declare
  2
  3  begin
  4      p_validatezip('9123412341234');
  5  end;
  6  /
long zip
declare
*
ERROR at line 1:
ORA-20998:
ORA-06512: at "RNTSOFT.P_VALIDATEZIP", line 17
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at line 4
SQL>