1
A
回答
5
DECLARE
pe_ratio NUMBER(3,1);
BEGIN
SELECT price/earnings INTO pe_ratio FROM stocks
WHERE symbol = 'XYZ'; -- might cause division-by-zero error
INSERT INTO stats (symbol, ratio) VALUES ('XYZ', pe_ratio);
COMMIT;
EXCEPTION -- exception handlers begin
WHEN ZERO_DIVIDE THEN -- handles 'division by zero' error
INSERT INTO stats (symbol, ratio) VALUES ('XYZ', NULL);
COMMIT;
RAISE ; --This will reraise your exception
END; -- exception handlers and block end here
如果我理解你的問題正確,你只需要re-raise例外,一旦你抓住它。 (見上文中的異常塊;基於例如從here)
EDIT
從上面的鏈接:http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/07_errs.htm#1069
可選OTHERS異常處理程序,其中始終是塊或子程序中的最後一個 處理程序,充當所有 exc的處理程序eptions未具體指定。因此,塊或子程序只能有一個OTHERS處理程序。
EXCEPTION
WHEN ZERO_DIVIDE THEN
-- handle the error
WHEN NO_DATA_FOUND THEN
-- handle the error
WHEN OTHERS THEN
-- handle all other errors
END;
有警告使用WHEN OTHERS,比如你應該避免使用WHEN OTHERS吞下錯誤,什麼也不做
...
WHEN OTHERS
NULL ; --swallowing the exception, not propagating it, just ignoring it. This will be problematic!
END ;
但是你可以這樣做:
WHEN OTHERS
LOGException(...) ; /** look at the asktom link for his example **/
RAISE; --always follow up with a RAISE!
END ;
Have a look at asktom to see his views WHEN OTHERS!
但請記住,如果您只是想將異常傳播到調用應用程序,則不需要捕獲它。不捕獲它,會自動讓它冒泡。
相關問題
- 1. 捕獲所有未處理的異常
- 2. 如何在Eclipse中沒有捕獲時觀察異常?
- 3. 捕獲所有異常
- 4. 捕獲所有異常
- 5. 如何捕獲所有未捕獲的異常並繼續?
- 6. 拋出異常但未捕獲
- 7. Oracle plsql捕獲異常
- 8. 是否有RX擴展來創建可觀察到的從另一個觀察到的,只有捕獲異常
- 9. 獲取IMethod捕獲的所有異常
- 10. vxworks異常調度觀察
- 11. UncaughtExceptionHandler未捕獲異常
- 12. 在未捕獲的異常
- 13. Java異常未被捕獲?
- 14. 異常未被捕獲
- 15. WPF - 異常未捕獲?
- 16. J2ME未捕獲異常
- 17. 未捕獲的異常「NSFileHandleOperationException」
- 18. 未捕獲的異常
- 19. PDO PHP未捕獲異常
- 20. 未捕獲的異常 'MongoConnectionException'
- 21. Java異常未被捕獲
- 22. 未捕獲的異常:java.security.AccessControlException
- 23. Node.js未捕獲的異常
- 24. Android WebView:異常未捕獲
- 25. HighCharts未捕獲的異常
- 26. Android未捕獲的異常
- 27. 未捕獲的異常:java.lang.ClassNotFoundException:
- 28. HybridIgniter未捕獲的異常
- 29. Java異常未捕獲
- 30. Java異常未捕獲?
如何捕獲所有,而不是一個特定的異常? – Malfist
我編輯它來捕獲所有異常。 – Malfist
@Malfist,你'抓住所有'是OTHERS(做了上面的修改) – Harrison