获取异常时方法的参数值

Zai*_*Ali 6 c# reflection exception

有没有办法知道抛出异常时传递给方法的内容。Convert.ToBoolean(string mystring)什么时候抛出FormatException?这里我想知道抛出异常时mystring是什么?

Cha*_*thJ 7

您必须捕获一般异常(或 FormatException)并将您的值分配给Exception.Data成员。或者用您的值重新抛出一个新的异常。

使用异常数据

如何添加您的额外信息

catch (Exception e)
            {
            e.Data.Add("ExtraInfo", "More information.");
            throw e;
            }
Run Code Online (Sandbox Code Playgroud)

如何捕捉

 catch (Exception e)
            {
            if (e.Data != null)
                {
            foreach (DictionaryEntry de in e.Data)
                    Console.WriteLine("    The key is '{0}' and the value is: {1}", 
                                                    de.Key, de.Value);                  
                }
            }
Run Code Online (Sandbox Code Playgroud)

// 或者只是用你的字符串重新抛出一个新的异常...

catch (Exception ex)
{     
     throw new Exception("My string was" + yourString);
}
Run Code Online (Sandbox Code Playgroud)


jas*_*son 0

应该只是使用Boolean.TryParse. 然后你可以说

bool value;
if(!Boolean.TryParse(myString, out value)) {
    // it didn't parse
}
// it parsed
Run Code Online (Sandbox Code Playgroud)