在try catch抛出异常后继续执行try中的代码 C#

有一种需求,那就是在try{}catch{}中,抛出了异常但是还是需要继续执行try中的代码,如何解决?
在网上浏览了一番之后,发现最合适的办法就是在外面套一层while判断

protected int num = 0;//声明一个变量用来保存执行try中代码产生的变化
protected void fun(){
	while(true){//目前暂时使用true来保证抛出异常后还能继续执行
		try{
			for(int i=1;i<10;i++){
				num++;//每次执行代码变化的部分,此处为num的值
				if(i%2 != 0) throw new Exception(i+"除不尽");
			}
		}
		catch(Exception ex){
			//随便处理一下
		}
	}
}

那么如何处理这个true的变化呢
取决于你try中的执行有无达到要求,另外写一个方法来控制

protected Boolean CheckNum(){
	if(num > 5) return false;
	return true;
}

这样一来,上面方法中while的判断就可以改为使用该方法了

protected int num = 0;//声明一个变量用来保存执行try中代码产生的变化
protected void fun(){
	while(CheckNum()){//现在使用check()方法来判断是否继续执行
		try{
			for(int i=1;i<10;i++){
				num++;//每次执行代码变化的部分,此处为num的值
				if(i%2 != 0) throw new Exception(i+"除不尽");
			}
		}
		catch(Exception ex){
			//随便处理一下
		}
	}
}

这样一来,就可以解决抛出异常继续执行try中代码的问题了
以上仅供参考

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# ,`try-catch` 块用于处理运行时可能出现的异常或错误情况。它的基本结构如下: ```csharp try { // 这里包含可能会抛出异常代码块 codeThatMayThrowException(); } catch (ExceptionType1 ex) { // 如果遇到 ExceptionType1 类型的异常,执行这里的代码并处理它 HandleException(ex); } catch (ExceptionType2 ex) { // 对于其他类型的 ExceptionType2 异常,同样执行相应的处理代码 HandleException(ex); } finally { //无论是否发生异常,这部分代码都会被执行(可选) // 通常用来释放资源或清理工作 cleanupCode(); } ``` - `try` 块放置可能抛出异常代码。如果代码块内发生了预期之外的错误,程序将立即停止当前方法的执行,并寻找匹配的 `catch` 子句。 - `catch` 子句定义了针对特定类型异常的处理策略。每个 `catch` 都捕获一种特定类型的异常,可以根据需要添加多个 `catch` 来处理不同类型的异常。 - `ExceptionType1` 和 `ExceptionType2` 是具体的异常类型,例如 `FileNotFoundException`, `DivideByZeroException` 等。如果你不确定会遇到哪种异常,也可以用 `catch (Exception ex)` 来捕获所有基类异常。 - `finally` 块内的代码在 `try` 或者任一 `catch` 结束后总会执行,确保资源被正确关闭或清理,即使发生异常也不例外。 通过 `try-catch`,程序员能够控制程序在遇到错误时的行为,而不是简单地让程序崩溃。这是编写健壮和可维护代码的重要部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值