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 != ""
}
執行結果:
參考:
GO 語言 錯誤處理
1 go錯誤處理機制,沒有try,catch 處理方式是 defer,panic,recover go丟擲乙個panic的異常,然後在defer中通過recover捕獲這個異常func test a 1 b 0 c a b c 1 0 捕獲不到 fmt.println c error main.go...
Go語言(十)錯誤處理
go語言中使用error介面處理異常,兩個內建函式panic 和recover 以報告和處理執行時錯誤和程式中的錯 誤場景,乙個defer關鍵字來處理順序執行。go語言使用介面error處理異常。type error inte ce 該介面處於errors包下,只有以下內容 package erro...
Go 錯誤處理
error型別是乙個介面型別,也是乙個go語言的內建型別。在這個介面型別的宣告中只包含了乙個方法error。這個方法不接受任何引數,但是會返回乙個string型別的結果。它的作用是返回錯誤資訊的字串表示形象。我們使用error型別的方式通常是,在函式宣告結果列表的最後,宣告乙個該型別的結果。同時在呼...