Как справиться с множеством ошибок в Go?Более сложная обработка ошибок в Go
Я смотрю на мой код и обнаружить, что она полна обработчиков ошибок:
err = result.Scan(&bot.BID, &bot.LANGUAGE, &bot.SOURCE)
if err != nil {
log.Fatalf("result.Scan: %v", err)
return
}
fileName, err := copySourceToTemporaryFile(bot)
if err != nil {
log.Fatalf("copySourceToTemporaryFile: %v", err)
return
}
...
И много линий выглядеть так:
// do something
// handle error
// handle error
// handle error
// do something 2
// handle error
// handle error
// handle error
Могу ли я создать обработчик по умолчанию, который печатает ошибки и прекращает обработку, или, по крайней мере, вытеснить эту «ошибку-обработчик-мусор» из моей логики кода?
Это выглядит некрасиво на первый (и позже), но я, случается, нравится вид ошибки ловли. Это действительно заставляет меня думать: «Что я должен делать в этом случае? Должен ли я сбой (смертельный), должен ли я продолжать использовать какой-либо другой метод/по умолчанию или я должен спросить пользователя». Если вы все равно выполняете 'log.Fatalf()', вы можете определить метод 'CrashIfErr (ошибка ошибки)' с простым вызовом 'log.Fatalf()'. BTW: нет необходимости в 'return' после' log.Fatalf() '. – topskip