我正在測試幾個正在生產並在異常塊中添加了一些部分的過程。我在測試環境中製作了這些過程的副本,我需要提出一個測試異常。測試異常塊的失敗過程
什麼是簡單的方法或使用最少的代碼更改,使程序進入異常塊?
我們只有others
在我們捕捉所有異常的異常塊中。例如:
DECLARE
-- something
BEGIN
-- I need some operation to do here which will make control go to exception
EXCEPTION
WHEN others THEN
-- handling error (Need to check these changes)
END;
我創建了一個程序來測試控制流程,以防異常但它給我錯誤。代碼如下
CREATE OR REPLACE Procedure Exception_Check
AS
BEGIN
dbms_output.put_line('step 1..........');
raise_application_error(-20111, 'Step 2...........');
dbms_output.put_line('step 3..........');
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('step 4, In to the exception block..........');
raise_application_error(-20112, 'Step 5........... In raising application error');
END;
我做錯了什麼?
@mari,[這](http://stackoverflow.com/review/suggestions-edits/1231025)不是一個好的建議編輯。請[不要添加隨機語法高亮顯示](http://meta.stackexchange.com/questions/137755/reject-an-already-approved-suggested-edit-when-rolling-it-back);這是不必要的,並使帖子更難以閱讀。只能使用反引號代碼,而不能使用關鍵字。 – Ben
@Ben,感謝您的反饋!將遵循!! 1 – Mari
你的程序是_meant_給你一個錯誤。這是程序的全部要點。 [如果你看看輸出](http://www.sqlfiddle.com/#!4/52205/1)這是錯誤代碼20112,這是你正在提出的錯誤。 – Ben