use sprint instead type assertion

Hi, I find cheap bug in recover function.
```go
x.(string) 
```
cause interface conversion error like:

panic: interface conversion: interface is runtime.errorString, not string

so I use sprintf instead.