Свойство Data
Свойство Data возвращает IDictionary,
куда перед throw можно положить свои
поля. Ключ имеет тип object, значение
тоже object. Например,
ex.Data["code"] = "abcde"; - позже
значение читают в catch.
Синтаксис
ex.Data["code"] = "abcde";
var text = ex.Data["code"];
Пример
Давайте записать и прочитать ключ "code":
using System;
class Program
{
static void Main()
{
try
{
var ex = new Exception("abcde");
ex.Data["code"] = "abcde";
throw ex;
}
catch (Exception ex)
{
Console.WriteLine(ex.Data["code"]);
}
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте сохранить число в Data:
using System;
class Program
{
static void Main()
{
try
{
var ex = new Exception("fail");
ex.Data["id"] = 5;
throw ex;
}
catch (Exception ex)
{
Console.WriteLine(ex.Data["id"]);
}
}
}
Результат выполнения кода:
5
Пример
Давайте проверить ключ перед чтением:
using System;
class Program
{
static void Main()
{
try
{
var ex = new Exception("abcde");
ex.Data["code"] = "12345";
throw ex;
}
catch (Exception ex)
{
Console.WriteLine(ex.Data.Contains("code"));
}
}
}
Результат выполнения кода:
True