永发信息网

c#异常,只有finally块为什么就不能捕获?

答案:6  悬赏:30  手机版
解决时间 2021-04-15 11:03
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版)》这本书中如下内容有点看不懂









最佳答案
finally里面一般放的是不管有没有异常都要执行的步骤,比如关闭数据库连接。
至于没有catch是什么样,我没试过,也不明白你为什么要对这个问题刨根问底。
全部回答
catch是用来捕获异常的,你没有catch,即没有return,在try抛出异常无法继续执行。
try catch finally 结构是,其中try标识开始异常监控; catch是捕捉其中的异常 finally是善后工作. finally无论是否发生异常都会执行. catch只有出现异常时才会执行
对于这个,要先理解catch的意义:它是用于捕获try语句块中发生的异常。 而对于try{}finally{}如果执行try语句块中没出现异常,那么代码则能正常执行下去, 但当try中有异常呢,又没有catch,系统该怎么办呢。你不捕获,则系统只能抛出异常,导致程序中止。 因为对于异常,只有两种解决方法,要么抛出,要么捕获,你不捕获,只能抛出。 (这是我的个人理解,如有错误请指出)
system.threading.thread.currentthread.abort(); 这句表示程序在此终止了、所以后面当然不会执行,回答完毕、、
因为异常没处理 所以继续向上抛出 比如你写了catch快扑捉空指针异常 不捕获其他异常 如果遇到非空指针异常也会向上抛出
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ三国豪杰如何50级升级 赚钱
轻秀沙棘酵素有专利吗
什么花飘着开?什么花走着开?什么花空中开?
网恋能现实吗 ?
鸣人到底向小樱告白没?
诺基亚n95现在多少钱?
火箭2连败,麦迪为什么还不复出
已知磁棒电感的尺寸和材质、绕线匝数和直径,
每次给我喜欢的女孩子打电话,她总问我有没有
初二的题目啊
品味香回民饭庄这个地址在什么地方,我要处理
啥时候回温?
15岁怎么贷款呀?
淘宝卖家没去快递店发货可以在淘宝的订单里改
去酒吧不吃不喝要钱吗?
推荐资讯
脸部要怎么瘦啊
李玟现在还是蔡依林的偶像吗?
天津西青区有森马专卖店吗?
我想充Q币去那里买啊
魔兽世界小德武器FM
请问打架斗殴什么时候判刑?
我买的蜂糖里面长了很多白的东西,能吃吗?
蒂蓝的洗面奶怎么样
QQ里面的SDLJ.EXE程序在哪啊?
分手后是写保证书,还是写协议
dnf中祝福技能怎样不在技能栏中就可以加祝福
一个曾经喜欢的男的生日要不要发个红包给他
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?