Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項(xiàng)

Go 語言 Error(錯(cuò)誤處理)

Go沒有像Java中的try / catch這樣的異常機(jī)制,我們不能在Go中拋出異常。

Go使用另一種機(jī)制,稱為延遲恐慌和恢復(fù)機(jī)制。

Go通過返回一個(gè)錯(cuò)誤對象來處理函數(shù)和方法的簡單錯(cuò)誤。錯(cuò)誤對象可能是唯一或最后一個(gè)返回值。如果函數(shù)中沒有錯(cuò)誤,則錯(cuò)誤對象為nil。

無論是否收到錯(cuò)誤,我們都應(yīng)始終在調(diào)用語句中檢查錯(cuò)誤。

我們永遠(yuǎn)不要忽略錯(cuò)誤,它可能導(dǎo)致程序崩潰。

Go語言檢測和報(bào)告錯(cuò)誤情況的方法是

  • 可能導(dǎo)致錯(cuò)誤的函數(shù)將返回兩個(gè)變量:一個(gè)值和一個(gè)錯(cuò)誤代碼,如果成功,則為nil;如果錯(cuò)誤條件,則為== nil。

  • 在函數(shù)調(diào)用之后檢查錯(cuò)誤。如果發(fā)生錯(cuò)誤( if error != nil),則停止執(zhí)行實(shí)際功能(或必要時(shí)整個(gè)程序)。

Go具有預(yù)定義的錯(cuò)誤接口類型

type error interface {
    Error() string
}	

我們可以使用錯(cuò)誤包中的error.New定義錯(cuò)誤類型,并提供適當(dāng)?shù)腻e(cuò)誤消息,例如:

err := errors.New("math - 負(fù)數(shù)的平方根")

出錯(cuò)示例

package main
import "errors"
import "fmt"
import "math"
func Sqrt(value float64) (float64, error) {
   if (value < 0) {
      return 0, errors.New("Math: 負(fù)數(shù)的平方根")
   }
   return math.Sqrt(value), nil
}
func main() {
   result, err := Sqrt(-64)
   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
   result, err = Sqrt(64)
   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
}

輸出:

Math: 負(fù)數(shù)的平方根
8
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清