More error types, different workflow for catching and raising.