defensive-coding-guide/modules/ROOT/pages/_partials/snippets/Go-Error_Handling-IO.adoc
2018-09-20 11:51:33 +02:00

21 lines
421 B
Text

func IOError(r io.Reader, buf []byte, processor Processor,
handler ErrorHandler) (message string, err error) {
n, err := r.Read(buf)
// First check for available data.
if n > 0 {
message, err = processor.Process(buf[0:n])
// Regular error handling.
if err != nil {
handler.Handle(err)
return "", err
}
}
// Then handle any error.
if err != nil {
handler.Handle(err)
return "", err
}
return
}