1. 程式人生 > >PLSQL異常處理及丟擲自定義異常

PLSQL異常處理及丟擲自定義異常

 declare
  i number;
  em emp%rowtype;
  begin
  --  i:=8/0;
 --   i='aaaa';
 --  select * into em from emp;
   select * into em from emp where empno=1234567;
 exception
    when zero_divid
      e then
      dbms_output.put_line('除0 異常');
    when value_error then
       dbms_output.put_line('數值轉換異常');
     when too_many_rows then
       dbms_output.put_line('查詢出多行記錄,但是賦值給了rowtype記錄一行資料變數');
   --  when no_data_found then 
  --     dbms_output.put_line('沒有找到資料異常');
      when others then
         dbms_output.put_line('發生了其它異常' || sqlerrm);     
  end;
    
     select * from emp where empno=73691;   
 
  declare
  --宣告遊標
  cursor vrows is select * from emp where empno=8888;   
  --宣告一個記錄型變數
  vrow emp%rowtype;
  --宣告一個自定義異常
  no_emp exception;  
begin
  --1.開啟遊標
  open vrows;
  --2.取資料
  fetch vrows into vrow;-- 預設取第一行
  --3.判斷遊標是否有資料
  if vrows%notfound then
    raise no_emp;
  end if;
  close vrows;
exception
  when no_emp then
    dbms_output.put_line('發生了自定義的異常');
end;
   

相關推薦

PLSQL異常處理定義異常

declare i number; em emp%rowtype; begin -- i:=8/0; -- i='aaaa'; -- select * into em from emp; select * into em from emp

python-reraise重新定義異常——如何使traceback選擇性保留?

1. 自定義異常  在python中,自定義一個異常類的方法如下: 新建一個python檔案exception.py,以後可以將該工程內的所有自定義異常類都寫到該檔案下。程式碼如下: """ 自定義異常類 """ # 引數型別異常類 class ParameterTypeE

spring 定義異常報java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: Transaction rolled back

介紹一下我報這個錯誤造成的原因:    我啟用了aop全域性事務管理,但是我在業務程式碼中自定義了一個異常類繼承了Exception,當我需要在指定位置丟擲這個異常的時候,就會報:java.lang.RuntimeException: org.apache.cxf.inter

Dubbo定義異常

        最近開始學習Dubbo框架,在工作中會把之前的業務遷移過來。         在原來的Spring MVC框架實現中,有使用到自定義異常的場景(自定義異常繼承RuntimeException)。而對於異常(包括自定義異常),在業務程式碼中都不做任何try-c

Dubbo生產者定義異常的問題

最近開始學習Dubbo框架,在工作中會把之前的業務遷移過來。         在原來的Spring MVC框架實現中,有使用到自定義異常的場景(自定義異常繼承RuntimeException)。而對於異常(包括自定義異常),在業務程式碼中都不做任何try-catch操作,而

Dubbo定義異常時報:Got unchecked and undeclared exception

轉載: http://blog.csdn.net/xlee1905/article/details/44660449 dubbo的service端定義有自定義異常進行throw的時候,卻發現在Controller中無法instanceof,自己自定義的異常類被轉換成了R

定義異常異常處理異常

你可以用raise語句來引發一個異常。異常/錯誤物件必須有一個名字,且它們應是Error或Exception類的子類 下面是一個引發異常的例子: class ShortInputException(Exception): ‘’‘自定義的異常類’’’ def init(self, le

Django中模板查詢路徑TemplateDoesNotExist的異常時如何查詢錯誤資訊

模板查詢路徑: 在專案的settings.py檔案中,有一個TEMPLATES配置,這個配置包含了模板引擎的配置,模板查詢路徑的配置,模板上下文的配置等。模板路徑可以在兩個地方配置 TEMPLATES = [ { 'BACKEND': 'django.temp

c++類比python 學習(遍歷列表、異常處理異常

遍歷列表 for i in list: print i c++11 的特性 1、這種情況是改變i的值並不改變vector,相當於只讀型別,淺拷貝 for(int i:vector) //

《編寫可維護的JavaScript》讀書筆記之程式設計實踐-定義錯誤

丟擲自定義錯誤 在 JavaScript 中丟擲錯誤是一門藝術。一旦理解如何丟擲錯誤,以及在何時丟擲錯誤,除錯程式碼的時間將大大所縮短,對程式碼的滿意度將急劇提升。 錯誤的本質 如果錯誤沒有被丟擲或者報告給開發者,除錯是非常困難的。如果所有的失敗都是悄無聲息

定義異常實戰,java封裝定義異常

1.定義錯誤程式碼列舉 2.定義自定義異常 3.產生了自定義異常(注:封裝後,此處可直接傳遞錯誤資訊列舉即可。無需傳遞兩個引數) 4.抓取自定義異常並處理 到此,異常發揮出了各種提示資訊,並且可以進行判斷的功能了,我們可以根據異常碼進行判斷等等哦。想擴充套件,

Python定義異常異常

1 """ 2 自定義異常 3 """ 4 class MyException(Exception): # 繼承異常類 5 def __init__(self, name, reason): 6 self.name = name 7

try…finally與巢狀定義異常

try...finally... try...finally...語句用來表達這樣的情況:在程式中,如果一個段程式碼必須要執行,即無論異常是否產生都要執行,那麼此時就需要使用finally。 比如檔案

springmvc在處理請求過程中出現異常資訊交由異常處理器進行處理自定義異常處理器可以實現一個系統的異常處理邏輯。為了區別不同的異常通常根據異常型別自定義異常類,這裡我們建立一個自定義系統異常,如果controller、service、dao丟擲此類異常說明是系統預期處理異常資訊。

springmvc在處理請求過程中出現異常資訊交由異常處理器進行處理,自定義異常處理器可以實現一個系統的異常處理邏輯。 1.1 異常處理思路 系統中異常包括兩類:預期異常和執行時異常RuntimeException,前者通過捕獲異常從而獲取異常資訊,後者主要通過規範程式碼開發、測試通過手段減少執

Laravel之加密解密/日誌/異常處理定義錯誤

文件中 例如 tom 處理器 crypt return cat 情況 而不是 一.加密解密 1.加密Crypt::encrypt($request->secret) 2.解密try {   $decrypted = Crypt::decrypt($encryptedV

Python中定義異常異常

# class ShortInputException(Exception): # def __init__(self,length,atleast): # super().__init__() # self.length = length #

SpringBoot全域性異常捕獲處理(包括定義異常捕獲處理

在做專案的時候需要對自定義異常做捕獲和處理,現在將程式碼記錄下來便於以後查閱。 1、全域性異常捕捉處理 @ControllerAdvice( annotations = {RestController.class} ) public class ExceptionHandlerAdv

定義異常處理錯誤提示類的使用技巧

一.關於自定義處理異常類及聯合自定義錯誤提示類的使用     1.專案內自定義py檔案,使用者存放自定義的錯誤提示類 class BaseResponse(object):     def __init__(self):

定義異常異常全域性處理

一、Java異常分類 java中異常均繼承自Throwable,其有兩個重要的直接子類error與exception Error: 大部分是由虛擬機器報出來的錯誤,是程式無法處理的錯誤,如 OutOfMemoryError,當JVM需要更多記憶體空間而得不

Java-異常定義異常

異常處理常用方法: 常用的異常處理方法有: 一、try()catch() 語句 二、throw / throws 語句 三、自定義異常類 用途: 眾所周知,當程式執行過程中,如果遇到了錯誤(比如陣列下標越界,空指標等)程式就會自動終止,但這種錯誤一般是偶然的,可能是使用者