2017-01-16 31 views
0

我正在使用web应用程序。我使用aspx页面作为api.From函数我调用函数2.两个函数都尝试并捕获块。如何捕获异常时跳过进一步的执行

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)如果错误在第二function.catch中捕获我可以在第二个函数的catch块中使用break。

回答

4

Function2catch块不returnthrow异常,因此将再次陷入function1catch块。

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

据对break你不能在第二个功能Break停止功能1的进一步执行在给定的例子的文档。但你可以做这样的事情。

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