iT邦幫忙

DAY 14
1

初學 Golang 30 天系列 第 14

初學 Golang 30 天(十四)錯誤處理

  • 分享至 

  • xImage
  •  

Go 語言有沒有類似其他語言中的 try...catch 的函式可以用來處理錯誤訊息?答案是有,但是又有點不一樣,讓我們一起來看看。

錯誤處理
以前的 try...catch...finally 功能雖然好用,但是會導致整個結構變得很糟糕,維護又很不方便,而 Go 改良的這個問題。

package main

import "fmt"

func main() {
defer func() {
fmt.Println("first")
if err := recover(); err != nil {
fmt.Println(err)
}
fmt.Println("end")
}()
f()
}

func f() {
fmt.Println("test")
panic(1)
fmt.Println("test2")
}

首先要處理錯誤就必須要加上 defer 這樣才能正確的抓到,再這個例子我們藉由 panic 產生的個錯誤並且值為 1 ,這裡要注意的是 Go 的 panic 的錯誤真的是錯誤,程式一定會發生錯誤然後關閉,除非你有使用 recover 會回覆他的數值。
所以這裡的結果會是

test
first
1
end


上一篇
初學 Golang 30 天(十三)Select
下一篇
初學 Golang 30 天(十五)指標
系列文
初學 Golang 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言