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