[英]pl/sql quotes exception
我將'+'傳遞給第二個參數時如何解決異常? 我正在嘗試Value_error
invalid_number
但無法正常工作。
create or replace PROCEDURE z33(number1 number,number2 number,character varchar2)
IS
sum number(3);
BEGIN
IF ( character= '+' ) THEN
sum := number1 + number2;
ELSIF ( character= '-' ) THEN
sum := number1 - number2;
ELSIF ( character= '*' ) THEN
sum := number1 * number2;
ELSIF ( character= '/' ) THEN
sum := number1 / number2;
ELSE
dbms_output.put_line('bad character');
END IF;
dbms_output.put_line('sum ' || sum) ;
EXCEPTION
WHEN ZERO_DIVIDE THEN
dbms_output.put_line('dont do that!!');
WHEN VALUE_ERROR THEN
dbms_output.put_line('error in input');
WHEN OTHERS THEN
dbms_output.put_line('other error');
END;
Begin
z33(1,'+','+');
end;
.......
這是因為您甚至從未進入過程序。 如果要捕獲該錯誤,則是從調用本身捕獲了異常,例如:
begin
z33(1,'+','+');
exception
when value_error then
dbms_output.put_line('Invalid parameter in call');
end;
/
Dbms輸出結果:
Invalid parameter in call
在上述情況下,在將參數傳遞給過程z33時引發了異常。 過程只能處理執行塊中引發的異常。 在這種情況下,異常將傳播到外部環境(即您的調用環境)。 在調用塊中使用異常,您可以捕獲它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.