21 lines
421 B
Text
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
|
|
}
|
|
|