make `e` final; be more specific about exceptions you catch (and throw)