<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 錯誤處理程序 Echo 提倡通過中間件或處理程序 (handler) 返回 HTTP 錯誤集中處理。集中式錯誤處理程序允許我們從統一位置將錯誤記錄到外部服務,并向客戶端發送自定義 HTTP 響應。 你可以返回一個標準的 `error` 或者 `echo.*HTTPError`。 例如,當基本身份驗證中間件找到無效憑據時,會返回 401未授權錯誤 (401-Unauthorized),并終止當前的 HTTP 請求。 ```go e.Use(func(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { // Extract the credentials from HTTP request header and perform a security // check // For invalid credentials return echo.NewHTTPError(http.StatusUnauthorized) // For valid credentials call next // return next(c) } }) } ``` 你也可以不帶消息內容調用 `echo.NewHTTPError()`,這種情況下狀態文本會被用作錯誤信息,例如 `Unauthorized`。 ## 默認 HTTP 錯誤處理程序 Echo 提供了默認的 HTTP 錯誤處理程序,它用 JSON 格式發送錯誤。 ``` { "message": "error connecting to redis" } ``` 標準錯誤 `error` 的響應是 `500 - Internal Server Error`。然而在調試 (debug) 模式模式下,原始的錯誤信息會被發送。如果錯誤是 `*HTTPError`,則使用設置的狀態代碼和消息發送響應。如果啟用了日志記錄,則還會記錄錯誤消息。 ## 自定義 HTTP 錯誤處理程序 通過 `e.HTTPErrorHandler` 可以設置自定義的 HTTP 錯誤處理程序 (error handler) 。 通常默認的 HTTP 錯誤處理程序已經夠用;然而如果要獲取不同類型的錯誤并采取相應的操作,則可以使用自定義 HTTP 錯誤處理程序,例如發送通知郵件或記錄日志到應用中心的場景。最后,你還可以發送自定義的錯誤頁面或 JSON 響應給客戶端。 ### 錯誤頁 利用自定義 HTTP 錯誤處理程序,可以在顯示不同種類的錯誤頁面的同時,記錄錯誤日志。錯誤頁的名稱可寫作 `<CODE>.html`,例如 `500.html`。你可以在[https://github.com/AndiDittrich/HttpErrorPages](https://github.com/AndiDittrich/HttpErrorPages)看到 Echo 內置的錯誤頁。 ```go func customHTTPErrorHandler(err error, c echo.Context) { code := http.StatusInternalServerError if he, ok := err.(*echo.HTTPError); ok { code = he.Code } errorPage := fmt.Sprintf("%d.html", code) if err := c.File(errorPage); err != nil { c.Logger().Error(err) } c.Logger().Error(err) } e.HTTPErrorHandler = customHTTPErrorHandler ``` > 日志除了記錄到 logger,也可以記錄到第三方服務,例如 Elasticsearch 或者 Splunk。
                  <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>

                              哎呀哎呀视频在线观看