Would be nice to catch *all* exceptions so that it can report when unexpected exception were thrown. e.g.

    expect { raise ArgumentError.new }.to_raise_error(RuntimeError)

does not report nicely that the block raised an ArgumentError instead of RuntimeError