黑马程序员技术交流社区

标题: try-catch -finally [打印本页]

作者: 邵帅    时间: 2012-12-11 20:27
标题: try-catch -finally
            int number = 0;
            Console.WriteLine("请输入一个数字");
            try
            {
                number = Convert.ToInt32(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("输入的数字有误,请重新输入");
            }
            finally
            {
                Console.WriteLine("abc");
老师教的不管怎样,都执行finally,我不明白这没用有什么用,在什么情况下加这个finally啊
作者: 许庭洲    时间: 2012-12-11 21:27
在异常和异常处理中,紧跟在try后的finally{}里的Console.WriteLine("abc")始终会执行,而且是在number = Convert.ToInt32(Console.ReadLine());后执行。
作者: 邵帅    时间: 2012-12-11 21:58
许庭洲 发表于 2012-12-11 21:27
在异常和异常处理中,紧跟在try后的finally{}里的Console.WriteLine("abc")始终会执行,而且是在number = C ...

嗯,谢谢老师~
作者: 985127948    时间: 2012-12-13 03:32
这里的finally会一直之心,而try和catch正常情况下执行try语句,只有try语句出错了才会执行catch语句的。
作者: 刘斌    时间: 2012-12-16 11:12
finally多用户释放资源,例如释放数据库
作者: 汪磊    时间: 2012-12-16 12:06
比如说你在try中使用了一个之前创建的资源,结果try中有问题出错了,后面资源释放语句不执行了,直接去catch中了,  你的资源就这样被霸占了!  这是就要用到finally,  不管语句有没有出现问题, finally一定执行!  一般都是用于清理资源的
作者: 张文    时间: 2012-12-16 15:44
老师的解释相当精辟啊。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2