Onerror status

```
var err = new Error('msg');
err.status = -1;

throw err;
```

`ctx.onerror` call `response.status = err.status`, lead to `uncaughtException`.

```
var err = new Error('msg');
err.message = -1;

this.throw(err);
```

will set `err.expose = true`.
we should definitely check that it's numeric I suppose but I wouldn't go too crazy with being defensive for the rest