是否有一种方法可以知道当抛出异常时传递给方法的是什么?Convert.ToBoolean(string mystring)
抛出FormatException时?这里我想知道什么是mystring当异常被抛出?
您必须捕获一般异常(或FormatException)并将您的值分配给exception。数据成员。或者用你的值重新抛出一个新的异常。
使用异常。数据
如何添加额外信息
catch (Exception e)
{
e.Data.Add("ExtraInfo", "More information.");
throw e;
}
如何捕捉
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);
}
}
//或者简单地用你的字符串重新抛出一个新的异常…
catch (Exception ex)
{
throw new Exception("My string was" + yourString);
}
只要它是在try块上面声明的参数或变量,您仍然可以在catch块中获得变量的值。
你必须捕获特定的异常,如argumentnullexception/formatexception,或者在try/catch块中包装方法中的单个操作,以了解异常被抛出的上下文。
void Method(int i, string j)
{
bool p;
try
{
}
catch(FormatException e)
{
//value of i, j, p are available here.
}
}
理想的方法是检查抛出异常(如formatexception)的可能情况并加以防止。
你应该只使用Boolean.TryParse
。然后写入
bool value;
if(!Boolean.TryParse(myString, out value)) {
// it didn't parse
}
// it parsed