Una delle cose che amo di Go è il modo in cui incoraggiano gli errori di passaggio come valori di ritorno, ma quando si tratta di loggare qual è la soluzione più gestibile: passare l'errore il più indietro possibile nel mucchio di esecuzione e registrare tutto lì , o registrarlo nella funzione in cui si è verificato lì e poi?
Quindi il primo:
func main() {
err := DoSomething()
if err != nil {
log.Printf(err)
}
}
func DoSomething() error {
return DoSomethingElse()
}
func DoSomethingElse() error {
return ThisFunctionMayCauseAnErrorAndIsHorriblyNamed()
}
o
func main() {
_ := DoSomething()
}
func DoSomething() error {
return DoSomethingElse()
}
func DoSomethingElse() error {
err := ThisFunctionMayCauseAnErrorAndIsHorriblyNamed()
if err != nil {
log.Printf(err)
}
}