真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

golang中怎么創(chuàng)建自定義錯(cuò)誤-創(chuàng)新互聯(lián)

在本教程中,我們會(huì)學(xué)習(xí)如何創(chuàng)建我們自己的自定義錯(cuò)誤,并在我們創(chuàng)建的函數(shù)和包中使用它。我們會(huì)使用與標(biāo)準(zhǔn)庫(kù)中相同的技術(shù),來(lái)提供自定義錯(cuò)誤的更多細(xì)節(jié)信息。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的睢寧縣網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

使用 New 函數(shù)創(chuàng)建自定義錯(cuò)誤

創(chuàng)建自定義錯(cuò)誤最簡(jiǎn)單的方法是使用 errors 包中的 New 函數(shù)。

在使用 New 函數(shù) 創(chuàng)建自定義錯(cuò)誤之前,我們先來(lái)看看 New 是如何實(shí)現(xiàn)的。如下所示,是 errors 包 中的 New 函數(shù)的實(shí)現(xiàn)。

// Package errors implements functions to manipulate errors.
package errors
// New returns an error that formats as the given text.
func New(text string) error {
    return &errorString{text}
}
// errorString is a trivial implementation of error.
type errorString struct {
    s string
}
func (e *errorString) Error() string {
    return e.s
}

New 函數(shù)的實(shí)現(xiàn)很簡(jiǎn)單。errorString 是一個(gè)結(jié)構(gòu)體類型,只有一個(gè)字符串字段 s。第 14 行使用了 errorString 指針接受者(Pointer Receiver),來(lái)實(shí)現(xiàn) error 接口的 Error() string 方法。

第 5 行的 New 函數(shù)有一個(gè)字符串參數(shù),通過(guò)這個(gè)參數(shù)創(chuàng)建了 errorString 類型的變量,并返回了它的地址。于是它就創(chuàng)建并返回了一個(gè)新的錯(cuò)誤。

現(xiàn)在我們已經(jīng)知道了 New 函數(shù)是如何工作的,我們開(kāi)始在程序里使用 New 來(lái)創(chuàng)建自定義錯(cuò)誤吧。

我們將創(chuàng)建一個(gè)計(jì)算圓半徑的簡(jiǎn)單程序,如果半徑為負(fù),它會(huì)返回一個(gè)錯(cuò)誤。

package main
import (  
    "errors"
    "fmt"
    "math"
)
func circleArea(radius float64) (float64, error) {  
    if radius < 0 {
        return 0, errors.New("Area calculation failed, radius is less than zero")
    }
    return math.Pi * radius * radius, nil
}
func main() {  
    radius := -20.0
    area, err := circleArea(radius)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Printf("Area of circle %0.2f", area)
}

在 glayground 上運(yùn)行

在上面的程序中,我們檢查半徑是否小于零(第 10 行)。如果半徑小于零,我們會(huì)返回等于 0 的面積,以及相應(yīng)的錯(cuò)誤信息。如果半徑大于零,則會(huì)計(jì)算出面積,并返回值為 nil 的錯(cuò)誤(第 13 行)。

在 main 函數(shù)里,我們?cè)诘?19 行檢查錯(cuò)誤是否等于 nil。如果不是 nil,我們會(huì)打印出錯(cuò)誤并返回,否則我們會(huì)打印出圓的面積。

在我們的程序中,半徑小于零,因此打印出:

Area calculation failed, radius is less than zero

以上就是golang中創(chuàng)建錯(cuò)誤的方法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司其它相關(guān)文章!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前文章:golang中怎么創(chuàng)建自定義錯(cuò)誤-創(chuàng)新互聯(lián)
文章位置:http://weahome.cn/article/cspipd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部