better (catch :default e ..) implementation