support non-error obj pass to app.onerror, fixed #287