22 Go 錯誤處理

2021-08-29 03:44:32 字數 1160 閱讀 3627

go 語言通過內建的錯誤介面提供了非常簡單的錯誤處理機制。

error型別是乙個介面型別,這是它的定義:

type error inte***ce
我們可以在編碼中通過實現 error 介面型別來生成錯誤資訊。

函式通常在最後的返回值中返回錯誤資訊。使用errors.new 可返回乙個錯誤資訊:

func sqrt(f float64) (float64, error) 

// 實現

}

在下面的例子中,我們在呼叫sqrt的時候傳遞的乙個負數,然後就得到了non-nil的error物件,將此物件與nil比較,結果為true,所以fmt.println(fmt包在處理error時會呼叫error方法)被呼叫,以輸出錯誤,請看下面呼叫的示例**:

result, err:= sqrt(-1)

if err != nil

package main

import (

"fmt"

)// 定義乙個 divideerror 結構

type divideerror struct

// 實現 `error` 介面

func (de *divideerror) error() string

// 定義 `int` 型別除法運算的函式

func divide(vardividee int, vardivider int) (result int, errormsg string)

errormsg = ddata.error()

return

} else

}func main()

// 當被除數為零的時候會返回錯誤資訊

if _, errormsg := divide(100, 0); errormsg != ""

}

執行以上程式,輸出結果為:

100/10 =  10

errormsg is:

cannot proceed, the divider is zero.

dividee: 100

divider: 0

** 

Go 錯誤處理

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

譯 go錯誤處理

func open name string file file,err error 下面的 使用os.open來開啟乙個檔案。如果出現錯誤,會呼叫log.fatal列印出錯誤的資訊並且終止 f,err os.open filename.etx if err nil do something with...

譯 go錯誤處理

func open name string file file,err error 下面的 使用os.open來開啟乙個檔案。如果出現錯誤,會呼叫log.fatal列印出錯誤的資訊並且終止 f,err os.open filename.etx if err nil do something with...