Мы хотим получить пользовательские данные, вызвавшие исключение, например.Индекс вне привязанного исключения.
try
{
int[] list = new int[2];
list[0] = 1;
list[1] = 2;
list[3] = 3;
Console.WriteLine(list[4]);
}
catch (Exception ex)
{
/* Expected
1) Line Number :5
2) Method Name: SearchArray()
3) Data: 3 // object specifically
4) excetion message:ArrayIndexOutOfBound Exception.
*/
StackTrace st = new StackTrace(ex, true);
StackFrame frame = st.GetFrame(0);
var data = ex.StackTrace;
var tr = ex.HResult;
}
В этом сценарии мы хотим получить значение List [3], поскольку эта строка отвечает за исключение (при котором доступ к списку [3] не будет).