web - php實際開發怎麼處理錯誤?

來源:互聯網
上載者:User
關鍵字 php web
比如尋找不存在的值,訪問模組方法錯誤,許可權不足……各種意想不到的錯誤。

一訪問直接彈出了錯誤資訊,我感覺每次都寫個判斷條件好麻煩,有沒有什麼好辦法?求教!

回複內容:

比如尋找不存在的值,訪問模組方法錯誤,許可權不足……各種意想不到的錯誤。

一訪問直接彈出了錯誤資訊,我感覺每次都寫個判斷條件好麻煩,有沒有什麼好辦法?求教!

如果是程式錯誤,建議使用 set_error_handlerset_exception_handler 設定一個函數來統一處理錯誤。

如果是自己設定的許可權等錯誤,可以使用 throw exception 的形式先將錯誤拋出去,在從外側接收並作統一處理,就不必在每個錯誤點寫判斷和處理了。

樓上幾位說的方法都是很正確的。不過對於實際開發最終只有404(無效的url)403(許可權不足)是可以接受的,像你說的 訪問模組方法錯誤 就太逗了,這是bug好嗎?嚴格來說你列舉的情況都屬於bug,上線前必須修複的,有什麼需要判斷和處理的。

從最終產品的角度看,我們需要識別的是使用者錄入資料及操作的合法性,當出現問題的時候給出一個友好提示。至於開發期間的bug,修複了不就沒有了。

這個得具體例子具體分析,比如你說尋找一個數組中不存在的值,常見的可以使用isset判斷,但是也可以利用ArrayAccess這個介面去處理,具體用法你只要看一下這個介面就明白了。判斷是否錯誤的調用了一個類中的方法可以用method_exists判斷,也可以使用魔術方法去統一處理。還有很多很多錯誤和方法。具體得看是什麼錯誤,還有對這種錯誤的容忍程度,去選擇不同的方法。有些地方必須用try catch的就必須用,有些錯誤可以容忍,甚至可以讓他直接報一個notice

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.