日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

go http 处理w.write 错误_go学习笔记-错误处理

發布時間:2024/10/14 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go http 处理w.write 错误_go学习笔记-错误处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

go語言對異常的處理沒有使用其他編程語言中常見的 try---catch來處理。go語言追求簡潔優雅。在go語言,沒有傳統的異常概念,go使用panic和recover機制對程序的嚴重異常進行處理(例如整數除)

在一般業務代碼里面,go官方推薦通過error狀態返回錯誤

// 按慣例 將err 總是放到最后一個參數返回 func doSomething(v interface{}) (n int, err error) {// 這里是函數業務邏輯return }// 處理時這樣處理 num,err := doSomething() if err != nil{//執行相關錯誤處理 }//正常處理流程

panic 與 recover 類似php與java中的try/catch。并且panic與recover都是go 語言中的函數而非語句。panic中斷當前函數流程,執行延遲調用(defer),在延遲調用中 ,通過recover捕獲panic提交的錯誤對象

func panic(v interface{}) func recover() interface{} func main() {num := test()fmt.Println(num) // 此時num為0 }func test() int {// 必須要先聲明defer,否則不能捕獲到panic異常,也就是說要先注冊函數,后面有異常了,才可以調用defer func() {if err := recover(); err != nil {fmt.Println("終于捕獲到了panic產生的異常:", err) // 這里的err其實就是panic傳入的內容}}()panic("fanic 發生了")fmt.Println("panic發生后")return 10 }
  • 補充:延遲調用語句defer與異常沒有直接關系,如果沒有發生panic仍然會執行導defer。上面例子只是 使用defer進行revover
  • defer必須在panic之前聲明,否則當panic時,recover無法捕獲到panic

總結

以上是生活随笔為你收集整理的go http 处理w.write 错误_go学习笔记-错误处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。