5 ms·
To be fair, reporting that cleanup also failed with a different error is inherently complicated, and so many people got the try-finally version wrong that Java
by erik_seaberg 7y ago
To be fair, reporting that cleanup also failed with a different error is inherently complicated, and so many people got the try-finally version wrong that Java finally added try-with-resources and Throwable#addSuppressed.
- danielparks 7y agoDefinitely true. Mostly I just avoid using defer with Close, but I sometimes end up writing terrible stuff like: defer func() { err2 := f.Close() if err == nil { err = err2 } }() Not perfect, but better than nothing. I could use Wrapf to add information is err is already set. :-p