获取异常上方法的参数值



是否有一种方法可以知道当抛出异常时传递给方法的是什么?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

相关内容

  • 没有找到相关文章

最新更新