在vs2010 C#中 用了异常处理语句try..catch..finally,调试器仍中断停止

2024-12-28 08:57:44
推荐回答(4个)
回答1:

你的catcah只捕捉了 System.IndexOutOfRangeException,跟这你引发的System.Exception不是一回事呀,把 catch (System.IndexOutOfRangeException e)后面的删除只留下catch就行了

回答2:

你throw出去的意思本身就是要他停止,不想停止就像你说的用try catch不要throw

回答3:

1、throw会抛出一个异常,需要处理这个异常
2、调试是会中断,运行时应该不会。

回答4:

catch (System.IndexOutOfRangeException e) 这句限定了这个catch只能捕获System.IndexOutOfRangeException异常,也就是数组越界异常。除此之外的都不能捕获,所以你抛出的那些都不能被捕获,只能在那里弹出错误了。
一般想要自己throw的,要么使用自定义异常类型,要么catch写成catch (Exception e),这样才能保证一定能被catch住。
另外,楼上说的“你throw出去的意思本身就是要他停止,不想停止就像你说的用try catch不要throw
”,这句也是不对的,有些情况不是产生了异常,而是因为数据有问题,需要代码走入异常处理,这种时候用throw就是为了走到catch里,没有catch的情况才是向上抛,一直抛到有catch的地方,或者程序直接异常终了。