儲存過程捕捉異常

2021-10-10 10:10:04 字數 2482 閱讀 7301

begin

try--

----

---開始捕捉異常

begin

transaction

----

----

----

----

----

--開始事務

exec procname @procparam--

----

----

-執行儲存過程[報錯,則錯誤資訊會**捉]

commit

----

----

----

----

----

----

----

----提交事務

endtry

----

----

---結束捕捉異常

begin

catch

----

--有異常**獲

if @@trancount

>0--

----

----

----

----

---判斷有沒有事務

begin

rollback

----

----

----

----

----

---回滾事務

end--print error information.

print

'errornumber : '

+convert

(varchar(50

),error_number()

)print

'errorseverity : '

+convert

(varchar(5

),error_severity()

)print

'errorstate :'

+convert

(varchar(5

),error_state()

)print

'errorprocedure :'

+isnull

(error_procedure()

,'-'

)print

'errorline :'

+convert

(varchar(5

),error_line()

);print

'errormessage :'

+error_message()

;end

catch

----

----結束異常處理

例項應用:php **捕捉儲存過程錯誤資訊

$sp

=" begin try---------開始捕捉異常

begin transaction------------------開始事務

exec $proc_ame

$param

commit ----------------------------提交事務

end try-----------結束捕捉異常

begin catch------有異常**獲

if @@trancount > 0---------------------判斷有沒有事務

begin

rollback ----------------------回滾事務

end-- 返回錯誤資訊

select 'errorprocedure :' + isnull(error_procedure(), '-') + 'errormessage :' + error_message() as errmessage

end catch"

;$stmt

=$this

->

notorm

->

connection

->

prepare

($sp);

$stmt

->

execute()

;$result

=$stmt

->

fetchall

(pdo::

fetch_assoc);

if(isset

($result[0

]['errmessage'])

)return

$result

;

php捕捉到儲存過程錯誤資訊如下:

儲存過程直接執行錯誤資訊如下:

try…catch 使用下列錯誤函式來捕獲錯誤資訊:

異常捕捉陷阱

finally執行規則 eg1 tryfinally 不論try塊正常結束或者非正常結束,finally的確會執行 但是上述例子不會輸出finally塊內容,因為system.exit 0 根本沒有結束執行過程,system.exit 0 將停止當前執行緒和其他當場死亡的執行緒,finally不能使...

捕捉異常try catch

1,當 在執行時可能出現異常時用try catch 捕捉異常,這樣程式出現異常不會立即跳出程式,可以經過處理後讓程式繼續執行或者跳出。例如 string a 12211a try catch exception e 2,還有很多其他異常,列舉一些常見異常 算術異常類 arithmeticexecpt...

關於異常捕捉

關與異常捕捉這個問題 首先我們要區分什麼時候用try catch 什麼時候用throw 什麼時候用throws,1.如果你需要抓取具體的異常那麼需要對 塊用try catch 2.如果你將抓取的異常丟擲到控制台或日誌中就需要用到throw 注意這個throw一般會寫在catch 塊裡,還有就是如果c...