<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 500 系統錯誤處理器 [Edit This Page](https://github.com/slimphp/Slim-Website/tree/gh-pages/docs/handlers/error.md) 出問題了!你并不能預知錯誤,但你可以預料到。每個 Slime 框架應用程序都有一個錯誤處理器用于接收所有未抓取的 PHP 異常。這個錯誤處理器同樣能接收當前 HTTP 的請求對象和響應對象。這個錯誤處理器必須預備并返回一個適當的響應對象,這個對象會被返回到 HTTP 客戶端。 ## 默認的錯誤處理器 默認的錯誤處理器非常基礎。它將響應狀態編碼設置為 `500`,并將響應內容類型設置為 `text/html`,并將一個通用的錯誤信息加入到響應體中。 這個對于生產應用_大概_不太合適。強烈建議你實現專用于你的 Slim 應用程序的錯誤處理器。 默認的錯誤處理程序還可以包括詳細的錯誤診斷信息。要啟用這個功能你需要將 `displayErrorDetails` 設置為 true : ``` $configuration = [ 'settings' => [ 'displayErrorDetails' => true, ], ]; $c = new \Slim\Container($configuration); $app = new \Slim\App($c); ``` ## 自定義錯誤處理器 Slim 框架應用程序的錯誤處理器是一種 Pimple 服務。你可以通過應用程序容器對自定義 Pimple factory 方法進行定義,來創建自定義的錯誤處理器取代默認的。 有兩種注入處理器的方法: ### Pre App ``` $c = new \Slim\Container(); $c['errorHandler'] = function ($c) { return function ($request, $response, $exception) use ($c) { return $c['response']->withStatus(500) ->withHeader('Content-Type', 'text/html') ->write('Something went wrong!'); }; }; $app = new \Slim\App($c); ``` ### Post App ``` $app = new \Slim\App(); $c = $app->getContainer(); $c['errorHandler'] = function ($c) { return function ($request, $response, $exception) use ($c) { return $c['response']->withStatus(500) ->withHeader('Content-Type', 'text/html') ->write('Something went wrong!'); }; }; ``` 在這個例子中,我們定義了一個新的 `errorHandler` factory ,它將返回一個 callable 。返回的 callable 接收三個參數: 1. 一個 `\Psr\Http\Message\ServerRequestInterface` 實例 2. 一個 `\Psr\Http\Message\ResponseInterface` 實例 3. 一個 `\Exception` 實例 這個 callable **必須** 返回一個新的 `\Psr\Http\Message\ResponseInterface` 實例,對于給定的異常也是如此。 **務必注意**:下面這三個類型的異常不會被自定義的 `errorHandler` 處理: * `Slim\Exception\MethodNotAllowedException`: 這個可以用自定義的 [`notAllowedHandler`](/docs/handlers/not-allowed.html) 來處理。 * `Slim\Exception\NotFoundException`: 這個可以用自定義的 [`notFoundHandler`](/docs/handlers/not-found.html) 來處理。 * `Slim\Exception\SlimException`: 這種類型的異常是 Slim 內置的,它的處理不能被覆寫。 ### 禁用 要想徹底地禁用 Slim 的錯誤處理器,只需從容器中移除錯誤處理器即可: ``` unset($app->getContainer()['errorHandler']); ``` 現在,你需要負責處理所有異常了,因為 Slim 已經不再處理它們。
                  <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>

                              哎呀哎呀视频在线观看