是否可以在try块中使用return语句?怎么样?

时间:2010-05-13 16:13:25

标签: c# asp.net try-catch

是否可以在try块中使用return语句?。如何使用该语句有什么用处。

5 个答案:

答案 0 :(得分:8)

您可以从try块中返回,但请记住,finally方法中的代码将在从方法返回之前执行。例如,使用以下方法调用MessageBox.Show(test().ToString());将导致出现两个消息框(第一个显示“3”,第二个显示“1”)。

    int test()
    {
        try
        {
            return 1;
            throw new Exception();
        }
        catch (Exception e)
        {
            return 2;
        }
        finally
        {
            MessageBox.Show("3");
        }
    }

答案 1 :(得分:4)

当然,你可以在try块中使用return,语法和其他地方一样。

try
{
    return 0;
}
catch (Exception e)
{
    // handle exception
}

答案 2 :(得分:0)

例如,我可以使用局部变量而不必扩大其范围。

int Foo(string bar) {
    try {
        int biz = int.Parse(bar);

        return biz;
    } catch(...) {
        // Handle bad `bar`
    }
}

答案 3 :(得分:0)

这个问题的答案是肯定的。 作为示例,您可以参考以下问题: finally and return 希望你也能得到澄清。

答案 4 :(得分:-1)

当然,你可以这样做:

public string X(..)
{
    try
    {
        //do something
        return value;
    }
    catch(Exception ex)
    {
       throw;
       //or return here
    }
}