亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

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

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項

Go 語言 Error(錯誤處理)

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

Go使用另一種機制,稱為延遲恐慌和恢復機制。

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

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

我們永遠不要忽略錯誤,它可能導致程序崩潰。

Go語言檢測和報告錯誤情況的方法是

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

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

Go具有預定義的錯誤接口類型

type error interface {
    Error() string
}	

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

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

出錯示例

package main
import "errors"
import "fmt"
import "math"
func Sqrt(value float64) (float64, error) {
   if (value < 0) {
      return 0, errors.New("Math: 負數(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: 負數(shù)的平方根
8