C # - статически типизированный язык. Это означает, что вы, как правило, не можете динамически добавлять свойства к классам во время выполнения без каких-либо действительно прикольных вставок IL (которых вы определенно хотите избежать).
В вашем случае кажется, что вам нужно немного лучше понять исключения - мы обычно генерируем исключение определенного типа, чтобы указать причину исключительной проблемы. Например, если вы ищете файл, а его там нет, вы бы сгенерировали исключение FileNotFoundException или, если есть какая-то специфическая проблема приложения, вы можете создать свой собственный класс исключений и выбросить это исключение.
Имейте в виду, что исключения должны быть исключительными.