第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

其中哪一個是進行錯誤處理的正確方法

其中哪一個是進行錯誤處理的正確方法

Go
holdtom 2023-07-17 14:21:04
我的情況是,我有一個函數(shù)可以返回最多 5 個不同的錯誤,但我不確定按照 Go 的慣例,哪個函數(shù)被認為是正確的。我在下面做了一個小的 MSVC 示例來說明我的問題。使用 if 語法來阻止我的錯誤。if err := validatePassword(password); err != nil {    return err}if passwordHash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost); err != nil {    return err}或者以不同的方式命名每個錯誤(看起來很麻煩......)errValidatePassword := validatePassword(password)if errValidatePassword != nil {    return errValidatePassword}passwordHash, errPasswordHash := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)if errPasswordHash != nil {    return errPasswordHash}或者使用命名返回。func registerAccount(email string, password string) (err error) {    err = validatePassword(password)    if err != nil {        return err    }    // POSSIBLE ISSUE HERE as err already been inistalised????        passwordHash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)        if err != nil {            return err        }    }
查看完整描述

3 回答

?
忽然笑

TA貢獻1806條經(jīng)驗 獲得超5個贊

這是在編碼時提出的一個好問題,但沒有一個完美的答案。一般來說,像方法 1 或方法 3 這樣的就地處理錯誤是 Go 中的常見做法。

查看完整回答
反對 回復(fù) 2023-07-17
?
一只甜甜圈

TA貢獻1836條經(jīng)驗 獲得超5個贊

最后一個例子是我在大多數(shù)地方看到的。例如https://github.com/kubernetes/kubernetes/blob/master/cmd/genutils/genutils.go

編譯器不會將其檢測為重新定義,因為該表達式至少有一個新變量。


查看完整回答
反對 回復(fù) 2023-07-17
?
慕神8447489

TA貢獻1780條經(jīng)驗 獲得超1個贊

給出最后一個例子,一個解決方案是不使用命名返回變量,并為每個功能塊引入作用域


package main


func registerAccount(email string, password string) error {


    if err := validatePassword(password); err != nil {

        return err

    }


    var passwordHash []byte

    {

        x, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)

        if err != nil {

            return err

        }

        passwordHash = x

    }


    return nil

}

請注意,如果您充分利用了變量的語法,則 if 已經(jīng)確定了變量的作用域。


查看完整回答
反對 回復(fù) 2023-07-17
  • 3 回答
  • 0 關(guān)注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號