In some places we have handlers for some exceptions that are unexpected and can reach those handlers only as a result of a bug. This is unnecessary and just complicates error handling. We should be explicitly handling expected exceptions and let everything else bubble up as far as possible and deal with it in the most generic handler possible.
I found some more unnecessary handlers in other places. Their removal is based on the same principle so I thought I'd add them ere instead of creating a new PR. Please take another look at it.
In some places we have handlers for some exceptions that are unexpected and can reach those handlers only as a result of a bug. This is unnecessary and just complicates error handling. We should be explicitly handling expected exceptions and let everything else bubble up as far as possible and deal with it in the most generic handler possible.