new decorator to outsource exception handling