日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2019.3.23 捕获异常

發布時間:2024/7/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019.3.23 捕获异常 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PHP中try{}catch{}語句概述

1.PHP5添加了類似于其它語言的異常處理模塊。在 PHP 代碼中所產生的異常可被 throw語句拋出并被 catch 語句捕獲。(注:一定要先拋才能獲取)

2.需要進行異常處理的代碼都必須放入 try 代碼塊內,以便捕獲可能存在的異常。

3.每一個 try 至少要有一個與之對應的 catch。

4.使用多個 catch可以捕獲不同的類所產生的異常。

5.當 try 代碼塊不再拋出異常或者找不到 catch 能匹配所拋出的異常時,PHP 代碼就會在跳轉到最后一個 catch 的后面繼續執行。

6.當然,PHP允許在 catch 代碼塊內再次拋出(throw)異常。

7.當一個異常被拋出時,其后(譯者注:指拋出異常時所在的代碼塊)的代碼將不會繼續執行,而 PHP 就會嘗試查找第一個能與之匹配的 catch。

8.如果一個異常沒有被捕獲,而且又沒用使用 set_exception_handler() 作相應的處理的話,那么 PHP 將會產生一個嚴重的錯誤,并且輸出 Uncaught Exception ... (未捕獲異常)的提示信息。

手動拋出和捕獲異常

// 使用think自帶異常類拋出異常

throw new \think\Exception('異常消息', 10006);

助手函數簡化異常的代碼

// 使用助手函數拋出異常

exception('異常消息', 10006);

如果需要拋出自定義異常,可以使用:

// 拋出自定義異常

exception('異常消息', 10006,'\app\common\exception\NotFoundException');

手動捕獲異常方式是使用try-catch,例如:

try {// 這里是主體代碼 } catch (ValidateException $e) { // 這是進行驗證異常捕獲 return json($e->getError()); } catch (\Exception $e) { // 這是進行異常捕獲 return json($e->getMessage()); }
可以使用PHP的異常捕獲進行必要的處理,但需要注意一點,
在異常捕獲中不要使用think\Controller類的error、success和redirect方法,

因為上述三個方法會拋出HttpResponseException異常,從而影響正常的異常捕獲,例如:
try{Db::name('user')->find(); $this->success('執行成功!'); }catch(\Exception $e){ $this->error('執行錯誤'); }
應該改成
try{Db::name('user')->find(); }catch(\Exception $e){ $this->error('執行錯誤'); } $this->success('執行成功!');

?


?

? ?

轉載于:https://www.cnblogs.com/liuwei1/p/10585230.html

總結

以上是生活随笔為你收集整理的2019.3.23 捕获异常的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。