使用golang errors包自定義錯誤

2021-10-16 21:25:46 字數 1188 閱讀 9782

發現golang很多開源的package都是使用error來定義錯誤,其實我自己更加的習慣利用返回的值進行判斷。 雖然這麼說,但golang的error定義還是有意思的,合理就返回nil,不合理就返回error的錯誤

下面說說golang的自定義錯誤的用法。在go裡定義錯誤的方式有這麼兩種,但都需要你的返回值是error型別的

1. 第一種方式是使用golang標準庫包errors 來定義錯誤。使用方法很是簡單,只需要 return errors.new(「string」) 。 這樣就是乙個最簡單的錯誤返回。

2. 第二種方式是借用struct結構體,建立乙個struct的error()方法,注意這個方法名是error,不然會出現下面的bug, 找不到error方法。

下面是乙個比較完整的error的使用方法。不僅有errors,還有struct error()方式

package main

import

("errors"

"fmt"

)type equalerror struct

//方法名字是error()

func

(e equalerror)

error()

string

func

equal

(n int)(

int,

error

)return n,

nil}

func

diyequal

(n int)(

int,

error

)// 會呼叫equalerror的error方法

}return n,

nil}

func

main()

else

//不適用erros,自定義錯誤方式.

if result, err :=

diyequal

(100

); err !=

nilelse

}

上面這段golang errors**執行後的結果是:

[

`go run er.go`

| done:

659.182168ms ]

錯誤: 超過了55

錯誤: 你現在是數字是 100

,還是超了55

r mysql包 R使用RMySQL包

經常在網上看到,很多人問如何在r中如何連線資料庫,尤其是如何使用rmysql包的問題。這些問題主要分為兩部分 一是 安裝不上 二是安裝上了 結果顯示是中文亂碼或者是問號。我當初也被這種問題困擾過一段時間,所以現在簡單總結一下 希望能夠幫助部分人解決問題。首先如何載入rmysql包 細分幾個步驟 1,...

DBMS RANDOM包的使用

7月18日 dbms random包的使用 1 function value return number select dbms random.value from dual 返回乙個大於或等於 0 且小於 1 的隨機數 2 function value low in number,high in ...

javascript閉包使用

之前看到一段 很是不能理解,然後就查詢資料並且找網路上得大牛請教,最後弄懂了這段 然後就拿出來總結一下。先來看一段 var arrtest for var i 0 i 3 i arrtest function function function console.log arrtest 0 tostr...