使用try catch处理c#中的异常

本文关键字:异常 处理 try catch 使用 | 更新日期: 2023-09-27 18:02:48

我有3个方法,我尝试捕捉每个方法。如果在第三个方法中出现错误,则进入exception.

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()方法并显示Exception。另一个方法是

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()中的代码。

使用try catch处理c#中的异常

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

如果你想捕获M1上的错误,那么不要在M2和M3中写入Try .. catch

如果你想在函数中处理错误,那么把Try .. catch放在同一个函数中。