Golang高效處理多個(gè)error是否為nil的實(shí)戰(zhàn)方案
err1 := receiveOrder() err2 := checkInventory() err3 := processPayment()
if err1 != nil || err2 != nil || err3 != nil {
// 處理錯(cuò)誤...
}
type UnifiedError struct {
Timestamp time.Time
Context string
Originals []error
}
func (u UnifiedError) Error() string {
return fmt.Sprintf("%d errors at %v", len(u.Originals), u.Timestamp)
}
func mergeErrors(errors []error) error {
if len(errors) == 0 {
return nil
}
return UnifiedError{
Timestamp: time.Now(),
Context: "Order processing failure",
Originals: errors,
}
}
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由皇冠云發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。