2017-01-16 5 views
0

私はWebアプリケーションを使用しています。私はaspxページをaspx関数として使用しています。関数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; 
     } 

    } 

私は2番目のfuntion.canのエラーキャッチが、私は第二の機能のcatchブロックでブレークを使用する場合、さらに実行(関数1)をスキップします。それが再びfunction1catchブロックでキャッチされますので、Function2

答えて

4

catchブロックはありませんが、returnthrow例外を行います。

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() 
{ 
    try 
    { 
     int b = function2() 
     if (b = 0) 
      break; // Or maybe a return of an error. 
    } 
    catch(Exception ex) 
    { 
     Response.Write(ex.Tostring()); 
    } 
} 
関連する問題