天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP 程序員也要學會使用“異常”

網站完全開放的特性,決定了網站比任何傳統軟件都更希望做到“系統看起來永遠都是能夠正常工作的”,所以采用正確的程序錯誤處理方式尤為重要。理論上來說,如果設計足夠完美,開發人員足夠謹慎,程序出現錯誤的可能為0.
但事實恰恰相反,復雜的業務邏輯,不同的硬件環境,或者不可信任的用戶輸入,都可能導致程序出錯,服務當機。所以在稍微有點復雜的系統中,有個完善的錯誤機制是必須的。
php5之前,因為缺乏對異常的支持。在做復雜的開發時,常常采取比較原始的“處理錯誤數值+記錄log”的處理形式。
如:
復制代碼 代碼如下:
function getResult($a,$b)
{
.......
if fatal error occur
return "error_type1";
.....
}
$result = getResult($a,$b);//理論上,getResult函數總能正確的返回$result
if($result=='error_type1')//但在一些特殊情況.$result無法正常取得
{
writeLog('result is empty!');//記錄下log
die();//或者其他更“友好的”處理方式
}

理論上,通過“處理錯誤數值+記錄log”的方式也可以達到我們的目標(事實上確實如此,在php3,php4的時候,已經出現了很多成功且足夠復雜的系統,他們甚至考慮到所有的情況,因此不需要記錄任何log)。但技術總要向前發展的,更何況,決大多數的開發人員并不具備牛人的嚴謹到滴水不漏的思維,所以我們還是不得不認真思考“如何處理程序錯誤”的問題。
上面的“錯誤處理+記錄log”的方式,存在如下弊端:
1 如果錯誤情況太多,那相應的錯誤處理代碼需要增加很多,這非常損害程序的可讀性。你的程序看起來是“斷斷續續的”。
2 如果程序的邏輯很復雜(比如程序的函數調用非常復雜,如在 getResult2()函數 中調用 getResult() 的情況,甚至更復雜的多級嵌套的情況),那錯誤數值的傳遞處理會讓你疲于奔命。因為為了確保錯誤能夠得到有效的處理,你必須保證: 以無損耗的方式傳遞錯誤數值。
所以,改變這種原始的錯誤處理方式吧。引入異常處理機制,你會發現可喜的變化:
1 代碼可讀性大大增強。開發程序時邏輯思維變得很連貫,在“可疑的”地方,你只要拋出個異常就可以了。至于怎么處理,完全可以等到后面再去補充。當然,對于程序的讀者,也不會覺得有被打斷的感覺。
2 再也不需要考慮“錯誤數值如何無損耗的進行傳遞”這種費力又不怎么討好的問題了。因為異常向上傳遞的特性,你的函數嵌套個2層,3層,再多層都沒有問題。你只需要在外層有捕獲異常的操作就可以了。
3 異常可以自由的定制,你可以按照功能對異常進行分類,更好的管理各種程序錯誤。同時對于你也可以更靈活的定制異常的處理方式。比如,在異常類里面實現記錄log的功能等。
當然,是否使用異常要根據需求而定。php的一大特性就是部署快,如果是很小的項目,邏輯很簡單,那使用一般的錯誤數值處理方式也許能夠更快的部署。

php技術PHP 程序員也要學會使用“異常”,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 一边亲着一面膜下奶韩剧免费 | 国产v综合v亚洲欧美大片 | 九九热久久只有精品2 | 老色69久久九九精品高潮 | 亚洲精品久久久久AV无码林星阑 | 日本理伦片午夜理伦片 | 国产精品资源在线观看网站 | 99久久久久国产精品免费 | 国产在线精品国自产拍影院午夜 | 乌克兰成人性色生活片 | 欧美尤物射精集锦 | 韩国精品无码少妇在线观看网站 | 亚洲人成伊人成综合网久久久 | 秋霞电影伦网理最新在线看片 | 无遮18禁在线永久免费观看挡 | 午夜A级理论片左线播放 | 亚洲精品国产AV成人毛片 | 色WWW永久免费视频首页 | 乌克兰粉嫩摘花第一次 | 男女一边摸一边做羞羞的事情免费 | 国产成人无码精品久久久按摩 | 飘雪韩国在线观看免费高清完整版 | 邻家美姨在线观看全集免费 | 97人人超碰国产精品最新蜜芽 | 学生精品国产在线视频 | 中文字幕高清在线观看 | 97色伦在色在线播放 | 色欲AV久久综合人妻蜜桃 | 伊人久久青青 | 好妞操 | 亚洲 天堂 欧美 日韩 国产 | 人妻满熟妇AV无码区国产 | 国产亚洲AV无码成人网站 | 同桌别揉我奶了嗯啊 | 好男人在线观看免费视频WWW | xxnx动漫| 狠狠色狠狠色综合日日32 | 超级乱淫片午夜电影网99 | 日本一卡2卡3卡四卡精品网站 | 日韩精品真人荷官无码 | 欧美v1deossexo高清 |