最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GO語(yǔ)言標(biāo)準(zhǔn)錯(cuò)誤處理機(jī)制error用法實(shí)例

 更新時(shí)間:2014年12月03日 16:26:14   投稿:shichen2014  
這篇文章主要介紹了GO語(yǔ)言標(biāo)準(zhǔn)錯(cuò)誤處理機(jī)制error用法,實(shí)例分析了錯(cuò)誤處理機(jī)制的具體用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了GO語(yǔ)言標(biāo)準(zhǔn)錯(cuò)誤處理機(jī)制error用法。分享給大家供大家參考。具體分析如下:

在 Golang 中,錯(cuò)誤處理機(jī)制一般是函數(shù)返回時(shí)使用的,是對(duì)外的接口,而異常處理機(jī)制 panic-recover 一般用在函數(shù)內(nèi)部。

error 類型介紹

error 類型實(shí)際上是抽象了 Error() 方法的 error 接口,Golang 使用該接口進(jìn)行標(biāo)準(zhǔn)的錯(cuò)誤處理。

復(fù)制代碼 代碼如下:
type error interface {
 Error() string
}

一般情況下,如果函數(shù)需要返回錯(cuò)誤,就將 error 作為多個(gè)返回值中的最后一個(gè)(但這并非是強(qiáng)制要求)。參考模型:
復(fù)制代碼 代碼如下:
func Foo(param int) (n int, err error) {
 // ...
}

if n, err := Foo(0); err != nil {
        // 錯(cuò)誤處理
}


這就是 error 的使用方法,與其他語(yǔ)言的異常相比,Golang 的方法相對(duì)更加容易、直觀。

代碼1:經(jīng)典使用方法

復(fù)制代碼 代碼如下:
package main

import (
 "errors"
 "fmt"
)

func requireDual(n int) (int, error) {
 if n&1 == 1 {
  return -1, errors.New("您輸入不是雙數(shù)") //生成一個(gè)簡(jiǎn)單的 error 類型
 }

 return n, nil
}

func main() {
 if result, err := requireDual(101); err != nil {
  fmt.Println("錯(cuò)誤:", err)
 } else {
  fmt.Println("結(jié)果:", result)
 }
}


輸出結(jié)果:

錯(cuò)誤: 您輸入不是雙數(shù)

你有沒(méi)有覺(jué)得 Golang 的這種錯(cuò)誤的處理機(jī)制非常的簡(jiǎn)潔啊,呵呵!

代碼2:擴(kuò)充下上面的代碼,帶自定義參數(shù)的錯(cuò)誤輸出

復(fù)制代碼 代碼如下:
package main

import (
 "fmt"
)

type dualError struct {
 Num     int
 problem string
}

func (e dualError) Error() string {
 return fmt.Sprintf("參數(shù)不正確,因?yàn)閈"%d\"不是雙數(shù)", e.Num)
}

func requireDual(n int) (int, error) {
 if n&1 == 1 {
  return -1, dualError{Num: n}
 }

 return n, nil
}

func main() {
 if result, err := requireDual(101); err != nil {
  fmt.Println("錯(cuò)誤:", err)
 } else {
  fmt.Println("結(jié)果:", result)
 }
}


輸出結(jié)果

錯(cuò)誤: 參數(shù)不正確,因?yàn)?101"不是雙數(shù)

希望本文所述對(duì)大家的GO語(yǔ)言程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 一篇文章說(shuō)清楚?go?get?使用私有庫(kù)的方法

    一篇文章說(shuō)清楚?go?get?使用私有庫(kù)的方法

    這篇文章主要介紹了go?get?如何使用私有庫(kù),本文會(huì)明確指出Git?、golang的配置項(xiàng),附送TortoiseGit?+?Git混合配置,需要的朋友可以參考下
    2022-09-09
  • Go語(yǔ)言中樂(lè)觀鎖與悲觀鎖的具體使用

    Go語(yǔ)言中樂(lè)觀鎖與悲觀鎖的具體使用

    樂(lè)觀鎖和悲觀鎖是兩種思想,用于解決并發(fā)場(chǎng)景下的數(shù)據(jù)競(jìng)爭(zhēng)問(wèn)題,本文主要介紹了Go語(yǔ)言中樂(lè)觀鎖與悲觀鎖的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • golang根據(jù)生日計(jì)算星座和屬相實(shí)例

    golang根據(jù)生日計(jì)算星座和屬相實(shí)例

    這篇文章主要為大家介紹了golang根據(jù)生日計(jì)算星座和屬相的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Go?mod包管理工具詳解

    Go?mod包管理工具詳解

    Go?mod作為Go語(yǔ)言的官方包管理工具,可以幫助開(kāi)發(fā)者更好地管理包和依賴,提高開(kāi)發(fā)效率和項(xiàng)目可維護(hù)性,本文將介紹Go語(yǔ)言的包和依賴管理,以及Go?mod的作用和優(yōu)勢(shì),需要的朋友可以參考下
    2023-05-05
  • Go常用標(biāo)準(zhǔn)庫(kù)之fmt的簡(jiǎn)介與使用詳解

    Go常用標(biāo)準(zhǔn)庫(kù)之fmt的簡(jiǎn)介與使用詳解

    fmt 是 Go 語(yǔ)言中的一個(gè)常用標(biāo)準(zhǔn)庫(kù),它用于格式化輸入和輸出數(shù)據(jù),這篇文章主要為大家介紹了fmt的基本使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • 一文帶你理解Go語(yǔ)言中方法的本質(zhì)

    一文帶你理解Go語(yǔ)言中方法的本質(zhì)

    我們知道,Go語(yǔ)言從設(shè)計(jì)伊始,就不支持經(jīng)典的面向?qū)ο笳Z(yǔ)法元素,但?Go?語(yǔ)言仍保留了名為“方法(method)”的語(yǔ)法元素,下面我們就來(lái)帶大家深入了解一下Go語(yǔ)言中的方法吧
    2023-11-11
  • Go基礎(chǔ)教程系列之import導(dǎo)入包(遠(yuǎn)程包)和變量初始化詳解

    Go基礎(chǔ)教程系列之import導(dǎo)入包(遠(yuǎn)程包)和變量初始化詳解

    這篇文章主要介紹了Go基礎(chǔ)教程系列之import導(dǎo)包和初始化詳解,需要的朋友可以參考下
    2022-04-04
  • Go+Redis緩存設(shè)計(jì)與優(yōu)化實(shí)現(xiàn)

    Go+Redis緩存設(shè)計(jì)與優(yōu)化實(shí)現(xiàn)

    本文主要介紹了Go+Redis緩存設(shè)計(jì)與優(yōu)化實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Gin+Gorm實(shí)現(xiàn)CRUD的實(shí)戰(zhàn)

    Gin+Gorm實(shí)現(xiàn)CRUD的實(shí)戰(zhàn)

    本文主要介紹了Gin+Gorm實(shí)現(xiàn)CRUD的實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 一文精通管理多版本Go安裝教程

    一文精通管理多版本Go安裝教程

    這篇文章主要為大家介紹了一文精通管理多版本Go安裝教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評(píng)論

惠东县| 新干县| 延长县| 榆树市| 宜兴市| 司法| 枣庄市| 阿鲁科尔沁旗| 资源县| 兰州市| 柳林县| 安福县| 商河县| 鲁甸县| 改则县| 定襄县| 容城县| 离岛区| 正镶白旗| 芜湖县| 治县。| 日照市| 乐安县| 会东县| 思茅市| 邵东县| 通州市| 武乡县| 库伦旗| 深州市| 安塞县| 齐河县| 抚宁县| 荣昌县| 滨海县| 乌什县| 平邑县| 五家渠市| 清涧县| 临沂市| 尚义县|