GO語言基礎之error

2022-09-16 00:48:08 字數 1189 閱讀 1014

go錯誤處理

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

// 為divideerror繫結error方法,實現 error 介面

func (de *divideerror)error() string

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

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

errormessage = ddata.error() //呼叫方法得到對應錯誤資訊

return

} else

}func main()

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

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

}

執行結果:

100 / 6 =  16

errormessage is :

cannot procceed, the divider is zero.

dividee: 100

divider: 0

go語言基礎 錯誤 error

表示程式中的錯誤。用法 用於函式多返回值。func 函式名 引數列表 返回值,error xx,err 函式名 if err nil,函式執行無誤,結果有效,可以繼續向下執行 else err nil,有錯誤產生了,函式執行過程中有問題。error的型別 inte ce,系統的內建介面型別 type...

GO語言基礎之method

方法 method 1.go 中雖沒有 class,但依舊有 method 2.通過顯示說明 receiver 來實現與某個型別的組合 3.只能為同乙個包中的型別定義方法 4.receiver 可以是型別的值或者指標 5.不存在方法過載 6.可以使用值或指標來呼叫方法,編譯器會自動完成轉換 7.從某...

go語言基礎之range

在go語言中,遍歷資料或切片時可以用range,range會產生兩個值,分別是資料的索引與值 package main import fmt func main for v range x 這種寫法非常不好 雖然沒有報錯 因為for range的過程中,產生了index 索引 與value兩個值,但...