У вас есть два варианта:
1) Если вы создаете свое собственное исключение, вы можете наследовать от класса исключения и добавлять любые свойства, которые вам нужны.
2) Вы можете добавитьпары имя / значение в словаре Data любого исключения.
Из документации MSDN добавить информацию в Data:
try
{
// do something
}
catch (Exception e)
{
e.Data["ExtraInfo"] = "Information from NestedRoutine1.";
e.Data.Add("MoreExtraInfo", "More information from NestedRoutine1.");
throw e;
}
и использовать эту информацию:
if (e.Data != null)
{
Console.WriteLine(" Extra details:");
foreach (DictionaryEntry de in e.Data)
Console.WriteLine(" The key is '{0}' and the value is: {1}", de.Key, de.Value);
}