top | item 8712570

(no title)

_blob | 11 years ago

In the original code if out.Close() returns an error, run() will return nil. The revised code sets `err` to the returned error from out.Close(), in case the error from os.Create(*output) is nil.

Simply spoken, the original code will suppress the error from out.Close().

discuss

order

justinsb|11 years ago

What if the out.Write (which is presumably in "some code") has already set err? Then we lose _that_ error, if out.Close returns error.

I think this is tricky in any language.