convert exception message to string

b4bb2a7 fixes a crash caused by:
```ruby
ArgumentError.new(1).inspect
```

36d3909 is just some refactoring.