Graceful handling of nil errors (#16)
We shouldn't panic if *multiError is nil.
diff --git a/error.go b/error.go
index c6a9b75..fe85179 100644
--- a/error.go
+++ b/error.go
@@ -76,6 +76,10 @@
}
func (merr *multiError) Error() string {
+ if merr == nil {
+ return ""
+ }
+
buff := _bufferPool.Get().(*bytes.Buffer)
buff.Reset()
diff --git a/error_test.go b/error_test.go
index e05b905..7f3d125 100644
--- a/error_test.go
+++ b/error_test.go
@@ -367,3 +367,11 @@
wg.Wait()
}
+
+func TestNilMultierror(t *testing.T) {
+ // For safety, all operations on multiError should be safe even if it is
+ // nil.
+ var err *multiError
+
+ require.Empty(t, err.Error())
+}