<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 處理恐慌 實現長時間運行的進程時,某些代碼路徑可能會導致混亂。這通常見于未初始化的map和指針,以及在驗證用戶輸入不良的情況下,例如除零問題。 在這些情況下,系統的部分崩潰比整體崩潰更糟糕,因此就需要捕獲和處理發生的恐慌。 ### 實踐 1. 獲取第三方庫: ``` go get github.com/apex/log ``` 2. 建立panic.go: ``` package panic import ( "fmt" "strconv" ) // Panic 演示除零恐慌 func Panic() { zero, err := strconv.ParseInt("0", 10, 64) if err != nil { panic(err) } a := 1 / zero fmt.Println("we'll never get here", a) } // Catcher 處理恐慌 func Catcher() { defer func() { if r := recover(); r != nil { fmt.Println("panic occurred:", r) } }() Panic() } ``` 4. 建立main.go: ``` package main import ( "fmt" "github.com/agtorre/go-cookbook/chapter4/panic" ) func main() { fmt.Println("before panic") panic.Catcher() fmt.Println("after panic") } ``` 5. 這會輸出: ``` before panic panic occurred: runtime error: integer divide by zero after panic ``` ### 說明 這是捕捉恐慌的一個非常基本的例子。你可以想象使用更復雜的中間件,如何在運行許多嵌套函數后推遲恢復并捕獲它。在恢復過程中,可以做任何你想要的事情,例如發送日志。 在大多數Web應用程序中,常見的是捕獲恐慌并在發生混亂時發出http.InternalServerError消息。 * * * * 學識淺薄,錯誤在所難免。歡迎在群中就本書提出修改意見,以饗后來者,長風拜謝。 Golang中國(211938256) beego實戰(258969317) Go實踐(386056972)
                  <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>

                              哎呀哎呀视频在线观看