go中的錯誤處理

2021-08-26 12:18:01 字數 694 閱讀 9742

目前go中的錯誤處理機制比較簡單。往往是通過乙個error例項來傳達錯誤資訊。go內建乙個error介面來預設處理錯誤:

type error inte***ce 

...func main()[

i,error := sometype.method("110")

if error != nil

fmt.printf("the value is %v\n",i)

}

函式呼叫後,判斷error是否為nil。error為nil表示函式順利執行,否則處理錯誤。

我們也可以自定義乙個錯誤介面,按需返回期望的錯誤資訊:

//自定義乙個錯誤型別,並實現error方法

type customererror struct

func (e *customererror) error() string

...//某函式內部

if value<=0

}...

//執行棧中

i,error := somefunc(value)

if err != nil

//輸出:

at 2018-08-30 16:29:30.79250559 +0800 cst m=+0.000562311, value must larger than 0

go中的錯誤處理

錯誤處理 有兩種方式可以生成自己的異常返回,fmt.errorf errors.new go中的error的定義如下。type error inte ce 也就是說我們可以自己定義的結構體,通過實現這個介面就可以了。比如 type myerror struct func me myerror err...

Go 錯誤處理

error型別是乙個介面型別,也是乙個go語言的內建型別。在這個介面型別的宣告中只包含了乙個方法error。這個方法不接受任何引數,但是會返回乙個string型別的結果。它的作用是返回錯誤資訊的字串表示形象。我們使用error型別的方式通常是,在函式宣告結果列表的最後,宣告乙個該型別的結果。同時在呼...

go的錯誤處理

錯誤需要開發者主動捕獲,同時只能獲取是什麼錯誤,無法獲悉呼叫棧 確定具體哪一行,也就是不知道那行出了錯誤 err func if err niltype myerr struct func myerr myerr error errorerrors.withmessage err,bar faile...