diff --git a/check.go b/check.go
index <HASH>..<HASH> 100644
--- a/check.go
+++ b/check.go
@@ -91,6 +91,9 @@ func (c Check) String() string {
 // Finish ends the check, prints its output (to stdout), and exits with
 // the correct status.
 func (c *Check) Finish() {
+	if r := recover(); r != nil {
+		c.Exitf(CRITICAL, "check panicked: %v", r)
+	}
 	if len(c.results) == 0 {
 		c.AddResult(UNKNOWN, "no check result specified")
 	}
recover() in Check.Finish()