From: Intransition Date: 2009-09-02T16:12:59+09:00 Subject: minitest assert_throws, why rescue? In minitest why does assert_throws rescue ArgumentError/NameError ? def assert_throws sym, msg = nil default = "Expected #{mu_pp(sym)} to have been thrown" caught = true catch(sym) do begin yield rescue ArgumentError => e # 1.9 exception default += ", not #{e.message.split(/ /).last}" rescue NameError => e # 1.8 exception default += ", not #{e.name.inspect}" end caught = false end assert caught, message(msg) { default } end Thanks.