0

我有 3 种方法,我尝试每种方法。如果在第三种方法中发生错误,则会进入异常。

private void M1()
{  
   try
   {
     //some code
     //calling M2()
     //some code
   }
   catch(Exception ex)
   {
      MessageBox.Show(ex.Message);
   }
}
private void M2()
{  
   try
   {
     //some code
     //calling M3()
     //some code
   }
   catch(Exception ex)
   {
      throw ex;
   }
}
private void M3()
{  
   try
   {
     //some code
     //Error Occur
     //some code
   }
   catch(Exception ex)
   {
      throw ex;
   }
}

现在它直接进入 M1() 方法并显示异常。另一种方法是

private void M1()
{  
   try
   {
     //some code
     //calling M2()
     //some code
   }
   catch(Exception ex)
   {
      MessageBox.Show(ex.Message);
   }
}
private void M2()
{  
   try
   {
     //some code
     //calling M3()
     //some code
   }
   catch(Exception ex)
   {
      MessageBox.Show(ex.Message);
      return;
   }
}
private void M3()
{  
   try
   {
     //some code
     //Error Occur
     //some code
   }
   catch(Exception ex)
   {
      MessageBox.Show(ex.Message);
      return;
   }
}

在异常之后它还会执行 M2() 和 M1() 中的代码。

哪个程序最好...,

4

1 回答 1

2

没有好的或坏的设计,只有你的场景决定了最好的方法。

如果您想在 M1 上捕获错误,则不要Try .. catch在 M2 和 M3 中写入。

如果要处理引发错误的函数中的错误,则将其放入Try .. catch相同的函数中。

于 2013-03-07T12:11:19.000 回答