Go 錯誤處理
- error型別是一個介面型別,這是它的定義:
type error interface { Error() string }
Go 捕獲異常
傳統捕捉異常的方式
try
catch
finally
go語言
引入了defer、panic、recover
1.Go程式丟擲一個panic異常,在defer中通過recover捕獲異常,然後處理
案例
package main
import "fmt"
func test() {
//在函式退出前,執行defer
//捕捉異常後,程式不會異常退出
defer func() {
err := recover() //內建函式,可以捕捉到函式異常
if err != nil {
//這裡是列印錯誤,還可以進行報警處理,例如微信,郵箱通知
fmt.Println("err錯誤資訊:", err)
}
}()
//如果沒有異常捕獲,直接報錯panic,執行時出錯
num1 := 10
num2 := 0
res := num1 / num2
fmt.Println("res結果:", res)
}
func main() {
test()
fmt.Println("如果程式沒退出,就走我這裡")
}
列印結果
err錯誤資訊: runtime error: integer divide by zero
如果程式沒退出,就走我這裡
Exiting.
本作品採用《CC 協議》,轉載必須註明作者和本文連結