Go語言20 錯誤處理

2021-10-08 19:01:43 字數 1065 閱讀 9579

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型別的方式通常是,在函式宣告結果列表的最後,宣告乙個該型別的結果。同時在呼...