CREATE OR REPLACE FUNCTION
devision(dividend IN NUMBER,divisor IN NUMBER)
RETURN NUMBER IS
re NUMBER;
e_divisor_0 exception;
BEGIN
 if divisor=0 then
   raise e_divisor_0;
 end if;
 re := dividend/divisor;
 RETURN re;
 EXCEPTION
  WHEN e_divisor_0 THEN
  DBMS_OUTPUT.PUT_LINE('ERROR!');
END;
/
exception后面的只能跟异常类型

解决方案 »

  1.   

      WHEN others THEN
      DBMS_OUTPUT.PUT_LINE('ERROR!');
      

  2.   

    请问others 是满足的什么条件?
      

  3.   

    异常一种为内部异常,另外一种为自定义异常,你自定义的明显不能满足条件,应该就会报错了,而选择others则包含不符合条件的所有,这是个人理解!!!
      

  4.   

    请问others 是满足的什么条件?
    没有定义的异常都可以用others捕捉到