Merge pull request #40 from aybabtme/assert-type-avoid-panics

Checks that the `error` field is really of `error` type.
diff --git a/hooks/airbrake/airbrake.go b/hooks/airbrake/airbrake.go
index f24f00d..d92dc88 100644
--- a/hooks/airbrake/airbrake.go
+++ b/hooks/airbrake/airbrake.go
@@ -24,11 +24,21 @@
 		return nil
 	}
 
-	err := airbrake.Notify(entry.Data["error"].(error))
-	if err != nil {
+	err, ok := entry.Data["error"].(error)
+	if !ok {
 		entry.Logger.WithFields(logrus.Fields{
 			"source":   "airbrake",
 			"endpoint": airbrake.Endpoint,
+		}).Warn("Exceptions sent to Airbrake must have an `error` key of type `error`")
+		return nil
+	}
+
+	airErr := airbrake.Notify(err)
+	if airErr != nil {
+		entry.Logger.WithFields(logrus.Fields{
+			"source":   "airbrake",
+			"endpoint": airbrake.Endpoint,
+			"error":    airErr,
 		}).Warn("Failed to send error to Airbrake")
 	}