c# - c# - 如何强制执行Catch块?

我想知道try..catch是否可以强制执行进入catch,并运行代码?

下例代码:


try {


 if (AnyConditionTrue) {


 // run some code


 }


 else {


 // go catch


 }


} catch (Exception) {


 // run some code here...


}



时间: 原作者:

我建议不要在else中抛出异常,而是将catch中的代码提取到一个方法中,然后从其他方法调用它


try


{


 if (AnyConditionTrue)


 {


 MethodWhenTrue();


 }


 else


 {


 HandleError();


 }


}


catch(Exception ex)


{


 HandleError();


}



原作者:

 try{


 if (AnyConditionTrue){


 //run some code


 }


 else{


 throw new Exception();


 }


 }


 catch(){



 //run some code here...



 }



是的,你必须抛出异常:


 try


 {


 throw new Exception("hello");


 }


 catch (Exception)


 {



 //run some code here...


 }



原作者:

抛出Exception并跳转到Catch的有效方法,如下所示:


try


{


 throw new Exception("Exception Message");


}


catch (Exception e)


{


 // after the throw, you will land here


}



原作者:

http://msdn.microsoft.com/en-us/library/zwc8s4fz(v=vs.80).aspx

看这个


try


 {


 doSomething();


 }


catch


 {


 catchSomething();


 throw an error


 } 


finally


 {


 alwaysDoThis();


 }



如果你这样做时


try


 {


 doSomething(); 


 }


 catch


 {


 catchSomething(); 


 throw an error


 }


 alwaysDoThis();// will not run on error (in the catch) condition



当然,你仍然可以拥有多个catch

原作者:

通过一个异常来提供更多的反馈,这显示在innerException中:


try


{


 if (AnyConditionTrue)


 {


 MethodWhenTrue();


 }


 else


 {


 HandleError(new Exception("AnyCondition is not true"));


 }


}


catch (Exception ex)


{


 HandleError(ex);


}



...


private void HandleError(Exception ex) {


 throw new ApplicationException("Failure!", ex);


}



原作者:

public class CustomException: Exception


{


 public CustomException(string message)


 : base(message) { }



}




if(something == anything)


{


 throw new CustomException(" custom text message");


}



你可以试试

原作者:

可以引发异常,强制catch


throw new Exception(...);



原作者:

如果必须那样做,只要抛出一个新的异常


throw new Exception();



原作者:
...