如果没有错误继续...如果发生错误,请另行

时间:2010-06-11 08:28:05

标签: c#

嗨,我有一个问题,我有一些代码可以很好地工作,就像我使用它的70%的电脑但是......出于某种原因,有一些令人讨厌并喜欢做这样的事情(请记住)这是一个假设的

private void test_click(object sender, EventArgs e)
{
  MessageBox.Show("hi");
  //if it works ok without a error it continues to
  MessageBox.Show("worked ok");
  //if it encountered a error of some kind it would go to
  MessageBox.Show("DID NOT WORK OK");
}

5 个答案:

答案 0 :(得分:5)

try-catch(或try-catch-finally)怎么样?

private void test_click(object sender, EventArgs e)
{
  MessageBox.Show("hi");
  try
  {
     //if it works ok without a error it continues to
     MessageBox.Show("worked ok");
  }
  catch( Exception )
  {  
    //if it encountered a error of some kind it would go to
    MessageBox.Show("DID NOT WORK OK");
  }
}

注意:我在这里使用的是全局catch( Exception ),应该谨慎使用!对于测试方法,这没有问题,但不要在生产代码中执行此操作。你应该至少在那里指定预期的例外,并考虑如何处理这种情况。

答案 1 :(得分:1)

我会建议日志信息而不是弹出消息。

答案 2 :(得分:0)

你可以使用try catch。

答案 3 :(得分:0)

当你说它不起作用时,你的意思是它会抛出一个异常,或者它只是默默地失败而没有任何解释?

如果它抛出异常,你应该使用类似

的东西
private void test_click(object sender, EventArgs e)
{
    try
    {
        MessageBox.Show("hi");
        MessageBox.Show("worked ok");
    }
    catch(WheteverExceptionType ex)
    {
        MessageBox.Show("DID NOT WORK OK");
        // you can also access the properties of the thrown exception "ex" here...
        MessageBox.Show(ex.Message);
    }
}

答案 4 :(得分:0)

本质:

try {
  MessageBox.Show("hi");
  DoSomethingThatMightFail();
  MessageBox.Show("worked ok");
} catch (DoSomethingFailedException e) {
  MessageBox.Show("Something did not work: " + e.Message);
}