int[] arr = { 1, 2, 3, 4, 5, 6 };
try {
arr[10] = 1;
}
//catch {
// Console.WriteLine("fsdfds");
//}
finally {
Console.WriteLine("error");
}
上面catch块被注释了,导致finally块无法进入
难道捕获异常必须要有catch块么?我在书上看 说只有try和finally也可以的呀
另外还有个问题
图中的 “引发”和“用户未处理的”
选和不选有什么改变 能不能消息说明下
谢谢了
补充:其实主要是对《c#入门经典(第6版)》这本书中如下内容有点看不懂
c#异常,只有finally块为什么就不能捕获?
答案:6 悬赏:30 手机版
解决时间 2021-04-15 11:03
- 提问者网友:疯子也有疯子的情调
- 2021-04-14 23:12
最佳答案
- 五星知识达人网友:污到你湿
- 2021-04-15 00:18
finally里面一般放的是不管有没有异常都要执行的步骤,比如关闭数据库连接。
至于没有catch是什么样,我没试过,也不明白你为什么要对这个问题刨根问底。
至于没有catch是什么样,我没试过,也不明白你为什么要对这个问题刨根问底。
全部回答
- 1楼网友:天凉才是好个秋
- 2021-04-15 04:19
catch是用来捕获异常的,你没有catch,即没有return,在try抛出异常无法继续执行。
- 2楼网友:不如潦草
- 2021-04-15 02:59
try
catch
finally 结构是,其中try标识开始异常监控;
catch是捕捉其中的异常
finally是善后工作.
finally无论是否发生异常都会执行.
catch只有出现异常时才会执行
- 3楼网友:孤独的牧羊人
- 2021-04-15 02:26
对于这个,要先理解catch的意义:它是用于捕获try语句块中发生的异常。
而对于try{}finally{}如果执行try语句块中没出现异常,那么代码则能正常执行下去,
但当try中有异常呢,又没有catch,系统该怎么办呢。你不捕获,则系统只能抛出异常,导致程序中止。
因为对于异常,只有两种解决方法,要么抛出,要么捕获,你不捕获,只能抛出。
(这是我的个人理解,如有错误请指出)
- 4楼网友:酒安江南
- 2021-04-15 01:33
system.threading.thread.currentthread.abort(); 这句表示程序在此终止了、所以后面当然不会执行,回答完毕、、
- 5楼网友:归鹤鸣
- 2021-04-15 00:39
因为异常没处理 所以继续向上抛出
比如你写了catch快扑捉空指针异常 不捕获其他异常 如果遇到非空指针异常也会向上抛出
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯