<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                異常是許多流行編程語言的標配,但它們往往被 PHP 開發人員所忽視。像 Ruby 就是一個極度重視異常的語言,無論有什么錯誤發生,像是 HTTP 請求失敗,或者數據庫查詢有問題,甚至找不到一個圖片資源,Ruby (或是所使用的 gems),將會拋出異常,你可以通過屏幕立刻知道所發生的問題。 PHP 處理這個問題則比較隨意,調用 `file_get_contents()` 函數通過只會給出 `FALSE `值和警告。許多較早的 PHP 框架比如 CodeIgniter 只是返回 false,將信息寫入專有的日志,或者讓你使用類似 `$this->upload->get_error()` 的方法來查看錯誤原因。這里的問題在于你必須找出錯誤所在,并且通過翻閱文檔來查看這個類使用了什么樣的錯誤的方法,而不是明確的暴露錯誤。 另一個問題發生在當類自動拋出錯誤到屏幕時會結束程序。當這樣做時會阻擋其他開發者動態處理錯誤的機會。應該拋出異常讓開發人員意識到錯誤的存在,讓他們可以選擇處理的方式,例如: ~~~ <?php $email = new Fuel\Email; $email->subject('My Subject'); $email->body('How the heck are you?'); $email->to('guy@example.com', 'Some Guy'); try { $email->send(); } catch(Fuel\Email\ValidationFailedException $e) { // 驗證失敗 } catch(Fuel\Email\SendingFailedException $e) { // 這個驅動無法發送 email } finally { // 無論拋出什么樣的異常都會執行,并且在正常程序繼續之前執行 } ~~~ ### SPL 異常 原生的 Exception 類并沒有提供太多的調試情境給開發人員,不過可以通過建立一個特殊的 Exception 來彌補它,方式就是建立一個繼承自原生 Exception 類的一個子類: ~~~ <?php class ValidationException extends Exception {} ~~~ 如此一來,可以加入多個 catch 區塊,并且根據不同的異常分別處理。通過這樣可以建立 許多自定義異常,其中有些已經在 [SPL 擴展](http://laravel-china.github.io/#standard_php_library) 提供的 SPL 異常中定義了。 舉例來說,如果你使用了 `__call()` 魔術方法去調用一個無效的方法,而不是拋出一個模糊的標準 Exception 或是建立自定義的異常處理,你可以直接拋出 `throw new BadMethodCallException;`。 * [Read about Exceptions](http://php.net/language.exceptions) * [Read about SPL Exceptions](http://php.net/spl.exceptions) * [Nesting Exceptions In PHP](http://www.brandonsavage.net/exceptional-php-nesting-exceptions-in-php/) * [Exception Best Practices in PHP 5.3](http://ralphschindler.com/2010/09/15/exception-best-practices-in-php-5-3)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看