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

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

在 GO lang 的 defer 函數(shù)中獲取 panic() 參數(shù)

在 GO lang 的 defer 函數(shù)中獲取 panic() 參數(shù)

Go
紫衣仙女 2021-06-22 09:10:28
我有一個函數(shù) A 調(diào)用函數(shù) B,它有時會根據(jù)無效數(shù)據(jù)調(diào)用恐慌。在函數(shù)A defer 函數(shù)中,我想知道傳遞給panic() 的消息函數(shù)B,以便我可以通過網(wǎng)絡將json 中的錯誤報告回客戶端。例如func A( abc data) result string{  defer func(){    // get panic args and return result.  }  xx = B( abc[0] );  yy = B( abc[1] );  ...}函數(shù) B 使用 panic 的原因是為了避免大量的err := B(abc)if err != nil {    ...}在函數(shù) A 中,并使代碼更易于閱讀和維護。
查看完整描述

2 回答

?
慕桂英4014372

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

你想要的是recover功能。您想要推遲它是正確的 - 恢復僅在延遲函數(shù)中正常工作(如果您在主體中調(diào)用它,如果沒有恐慌,它將返回 nil,或者在恐慌發(fā)生時被跳過)。Recover 返回在空接口中恐慌的值:


func A(abc data) result string {

    defer func() {

        p := recover() // p is an interface{} value, and will be nil if there was no panic

    }() // You have to call the function

    ...

}


查看完整回答
反對 回復 2021-06-28
  • 2 回答
  • 0 關(guān)注
  • 215 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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