why app need to both handle error and ctx.error listener
https://github.com/koajs/koa/blob/master/lib/application.js#L129

https://github.com/koajs/koa/blob/master/lib/application.js#L151

why application both handle error in app.on('error') and ctx.onerror() 

app.on('error') for server error ? ctx.onerror for 'request error' ?

what's the difference? 

i'am beginner, thanks