PLSQL宣告部分異常捕獲
近期在看PL/SQL的文件,發現了很多有趣的小知識點,有的以前知道,也有很多以前並不瞭解的,寫出來和大家分享一下。
這篇描述異常捕獲的作用範圍。
PL/SQL的異常捕獲只針對執行部分,在宣告部分產生的異常是無法捕獲的:
SQL> set serverout on size
100000
SQL> declare
2 v_num number;
3 begin
4 v_num := 'a';
5 exception
6 when others then
7 dbms_output.put_line('Exception captured!');
8 end;
9 /
Exception captured!
PL/SQL procedure successfully completed.
SQL> declare
2 v_num number := 'a';
3 begin
4 null;
5 exception
6 when others then
7 dbms_output.put_line('Exception captured!');
8 end;
9 /
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 2
想要解決宣告部分的異常捕獲,解決方法是在外面巢狀一層,在外層進行異常的捕獲:
SQL> begin
2 declare
3 v_num number := 'a';
4 begin
5 null;
6 exception
7 when others then
8 dbms_output.put_line('Exception captured!');
9 end;
10 exception
11 when others then
12 dbms_output.put_line('Outer exception captured!');
13 end;
14 /
Outer exception captured!
PL/SQL procedure successfully completed.
除了宣告部分,異常處理部分本身導致的異常同樣也是無法捕獲的,解決方法和宣告部分一樣,需要在外層進行捕獲。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-748430/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼缺陷解讀:通用異常捕獲宣告缺陷漏洞
- 捕獲 React 異常React
- iOS異常捕獲iOS
- python異常捕獲Python
- 漏洞分析——變數缺陷漏洞及通用異常捕獲宣告缺陷漏洞變數
- android 異常捕獲-UncaughtExceptionHandlerAndroidException
- 記錄Javascript 異常捕獲JavaScript
- PHP使用trycatch,捕獲異常PHP
- 【筆記】forall 異常捕獲筆記
- 前端異常捕獲與上報前端
- wpf 捕獲全域性異常
- 儲存過程——異常捕獲&列印異常資訊儲存過程
- python中如何捕獲異常Python
- JS 使用try catch捕獲異常JS
- Auth 授權的異常捕獲
- 異常的捕獲及處理
- python動態捕獲異常Python
- oracle異常捕獲程式碼(轉)Oracle
- 10. 異常捕獲、生成式
- 談談前端異常捕獲與上報前端
- DRF之異常捕獲原始碼分析原始碼
- 捕獲不到異常嘗試除以0
- 程式碼安全測試第二十九期:通用異常捕獲宣告缺陷漏洞
- 前端JavaScript 常見的報錯及異常捕獲前端JavaScript
- 異常處理機制(二)之異常處理與捕獲
- spring-boot 統一異常捕獲Springboot
- SpringBoot之全域性捕獲異常Spring Boot
- 在 C++ 中捕獲 Python 異常C++Python
- iOS 日誌重定向和異常捕獲iOS
- C#中有關異常的捕獲演示C#
- Android 全域性異常捕獲之CrashHandlerAndroid
- Auto.js Pro 資料獲取 與 異常捕獲JS
- 前端開發中的Error以及異常捕獲前端Error
- Java捕獲非檢查異常----UncaughtExceptionHandler的使用JavaException
- plsql異常處理SQL
- 【Spring Cloud】Feign呼叫異常觸發降級後如何捕獲異常SpringCloud
- 記錄使用 guzzlehttp 異常捕獲踩坑記錄HTTP
- Flutter異常捕獲和Crash崩潰日誌收集Flutter