<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 概述 在通常情況下,向程序使用方報告錯誤狀態的方式可以是返回一個額外的error類型值. 但是,當遇到不可恢復的錯誤狀態的時候,如數組訪問越界,空指針引用等,這些運行時錯誤會引起panic異常, 這時,上述錯誤處理方式顯然就不合適了.反過來講,在一般情況下, 我們不應該通過調用panic函數來報告普 通的錯誤,而應該只把它作為報告致命錯誤的一種方式.當某些不應該發生的場景發生時,我們就應該調用panic . 一般而言,當panic異常發生時,程序會中斷運行,并立即執行該goroutine(可以先理解成線程,在中被延遲的 函數(defer機制)).隨后,程序崩潰并輸出日志信息.日志信息包括panic value和函數調用的堆棧跟蹤信息. 不是所有的panic異常都來自運行時,直接調用內置的panic函數也會引發panic異常,panic函數接受任何值作為參數 . ### 實例 ~~~ func test1(){ fmt.Println("111") } func test2(){ panic("this is a panic test") } func test3(){ fmt.Println("333") } func main(){ test1() test2() test3() } ~~~ ~~~ 111 panic: this is a panic test //直接讓程序崩掉 goroutine 1 [running]: main.test2() /Users/artisan/go/src/learn/main.go:10 +0x39 main.main() /Users/artisan/go/src/learn/main.go:19 +0x25 ~~~ ### 數組越界自動調用panic ~~~ func test(x int){ var a [10]int a[x] = 200 } func main(){ test(20) } ~~~ ~~~ panic: runtime error: index out of range //系統自動調用封裝好的panic goroutine 1 [running]: main.test2(...) /Users/artisan/go/src/learn/main.go:11 main.main() /Users/artisan/go/src/learn/main.go:20 +0x45 ~~~
                  <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>

                              哎呀哎呀视频在线观看