Hacker News new | ask | show | jobs
by _blob 4209 days 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().

1 comments

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.