我一直在閱讀this blog post,但我仍然不確定我確切地知道如何處理自定義錯誤,以便從我的函數返回並在其外部處理。Go中的自定義錯誤處理
這是目前我在做什麼:
func doSomething() int {
x := 0
// Do something with x.
...
if somethingBadHappened {
return -1
}
if somethingElseBadHappened {
return -2
}
return x
}
這是想什麼,我在做:
func doSomething() int, ? {
...
if somethingBadHappened {
return ?, err
}
if somethingElseBadHappened {
return ?, err2
}
return x, nil
}
但我不完全知道如何和什麼用這些問號替換這些問號。
嗯。爲了滿足錯誤接口,我只需要創建一個帶有字符串變量的新結構類型並創建一個Error實現,對吧?或者有更簡單的方法嗎? – 2013-03-17 15:52:37
@jnml - 不應該'return x,nil'是'return r,nil'? – 2013-03-17 18:15:34
@ Ekkehard.Horner:它也可能是'return r,nil',但並不是必然的。在OP中,「x」代表一個局部變量,它在這裏的意思也是如此。一般來說,最後一行可以是'return'或'reuturn expr1,expr2'。 – zzzz 2013-03-17 18:30:25