日期:2014-05-20  浏览次数:20801 次

求助求助求助求助-异常处理(多个方法调用)
实例:方法 A B C 
在Winform 中 A 调用 B, B 调用 C 
当C 出错时候 能捕捉到C的异常的详细信息
1 用throw ex 不能捕捉到C中的异常 只能捕捉到A B 的异常

我自己写了个,
还有其他解决方法没?????

  private void A()
  {
  string errMsg;
  try
  {
  B(out errMsg);
  if (!string.IsNullOrEmpty(errMsg))
  {
  MessageBox.Show(errMsg);
  return;
  }
  //其他代码....
  }
  catch (Exception ex)
  {
  MessageBox.Show(ex.StackTrace);
  }
  }

  private void B(out string ParErrMsg)
  {
  try
  {
  C(out ParErrMsg);
  if (string.IsNullOrEmpty(ParErrMsg))
  {
  return;
  }
  //其他代码....
  }
  catch (Exception ex)
  {
  ParErrMsg = ex.StackTrace;
  }
  }

  private void C(out string ParErrMsg)
  {
  try
  {
  ParErrMsg = string.Empty;
  Convert.ToInt32("A");
  }
  catch (Exception ex)
  {
  ParErrMsg = ex.StackTrace;
  }
  }

------解决方案--------------------
A 调用 B, B 调用 C ,就只要把A放到try catch里面,就可以捕获你所说的A、B、C所有的异常