如果异常被捕获,如何跳过进一步执行

时间:2017-01-16 06:59:54

标签: asp.net

我正在使用web应用程序。我使用aspx页面作为api.From函数我正在调用函数2.Both函数有try和catch块。

 Function1()
    {
      try
      {
        int b = function2()
      }
      catch(Exception ex)
      {
        Response.Write(ex.Tostring());
      }

    }

   public int Function2()
    {
      int a= 0;
      try
      {
        a=8;
       return a;
      }
      catch(Exception ex)
      {
       Response.Write(ex.Tostring());
       return a;
      }

    }

如果在第二个函数中出现错误,我想跳过进一步执行(function1)。我在第二个函数的catch块中使用break。

2 个答案:

答案 0 :(得分:4)

Function2 catch阻止中,不return而是throw例外,因此它会再次被function1 catch阻止。< / p>

Function1()
{
    try
    {
        int b = function2()
    }
    catch(Exception ex)
    {
        Response.Write(ex.Tostring());
    }
}

public int Function2()
{
    int a= 0;
    try
    {
        a=8;
        return a;
    }
    catch(Exception ex)
    {
        Response.Write(ex.Tostring());
        throw; //<----- here
    }
}

答案 1 :(得分:1)

根据break上的文档,你不能在第二个函数中打破在给定的例子中停止进一步执行Function1。但你可以这样做。

Function1()
{
    try
    {
        int b = function2()
        if (b = 0)
            break; // Or maybe a return of an error.
    }
    catch(Exception ex)
    {
        Response.Write(ex.Tostring());
    }
}