Use different macros based on exit type