多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP程序員也要學會使用“異常”

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

來源:程序員人生   發布時間:2013-12-23 00:17:37 閱讀次數:3306次

  網(LieHuo.Net)教程 “PHP程序員,特別是從php4,甚至是PHP3中成長起來的程序員,很多都不習慣使用拋出異常這種錯誤處理方式。雖然php5引入了異常處理機制,但是很多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的一大特性就是部署快,如果是很小的項目,邏輯很簡單,那使用一般的錯誤數值處理方式也許能夠更快的部署。

  文章來自:http://www.cnblogs.com/rethink/

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 三级大片网站 | 春色视频免费版高清在线观看 | 午夜影院免费观看视频 | 欧美性猛交xxxx乱大交高清 | 91福利视频免费观看 | 欧美日韩国产欧美 | 噜噜色.com | 黄大色黄美女精品大毛片 | 国产综合视频 | 亚洲综合国产精品 | 欧美性色欧美a在线观看 | 亚洲天堂久久 | 英国美女一级毛片视频 | 日韩免费观看一级毛片看看 | 久久国产精品久久 | 亚洲国产欧美目韩成人综合 | 久久精品国产视频在热 | 亚洲视频免费在线播放 | 最近的中文字幕大全免费8 最近的中文字幕大全免费版 | 欧美一区二区精品系列在线观看 | 亚洲欧美一区二区三区九九九 | 91精品推荐 | 日本人与亚洲人hd | 亚洲免费网站观看视频 | 久久久久久久久a免费 | 日本www黄| 黄色综合 | 一级特黄欧美 | 伊人影院在线观看视频 | 亚洲天堂免费视频 | 国产成人影院一区二区 | 日韩精品一区二三区中文 | 欧美性xx| 国产欧美亚洲专区第一页 | 久久精品国产欧美成人 | 五月婷网| 老司机午夜在线 | 精品的一区二区三区 | 91久久九九精品国产综合 | 九一精品国产 | 亚洲wu码|