Exceptions classes' definitions rewritten using macroes