坑人的 try catch finally
一直以为这样可以关闭 fs, 其实不行 static void Main(string[] args)
{
FileStream fs = null;
try
{
fs = new FileStream(@"d:\data.txt", FileMode.Create);
byte[] bytes = new UTF8Encoding().GetBytes("try");
fs.Write(bytes, , bytes.Length);
throw new Exception();//异常不作处理
}finally
{
byte[] bytes = new UTF8Encoding().GetBytes(" finally");
fs.Write(bytes, , bytes.Length);
if (fs != null)
fs.Close();
}
}
要这样才能有效关闭 fs: static void Main(string[] args)
{
try
{
FileStream fs = null;
try
{
fs = new FileStream(@"d:\data.txt", FileMode.Create);
byte[] bytes = new UTF8Encoding().GetBytes("try");
fs.Write(bytes, , bytes.Length);
throw new Exception();//异常不作处理
}finally
{
byte[] bytes = new UTF8Encoding().GetBytes(" finally");
fs.Write(bytes, , bytes.Length);
if (fs != null)
fs.Close();
}
}
catch
{
throw;
}
}
坑人的 try catch finally的更多相关文章
- SQLServer如何添加try catch
在.net中我们经常用到try catch.不过在sqlserver中我们也可以使用try catch捕捉错误,在这里把语法记录下来和大家分享一下, --构建存储过程CREATE PROCEDURE ...
- try...catch..finally
try..catch..finally try{ 代码块1 }catch(Exception e){ 代码块2 }finally{ 代码块3 } catch是抓取代码块1中的异常 代码块2是出异常后的 ...
- C++异常处理:try,catch,throw,finally的用法
写在前面 所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题. 异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制. 也许我们已经使 ...
- POJ 3278 Catch That Cow(bfs)
传送门 Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 80273 Accepted: 25 ...
- [c#基础]关于try...catch最常见的笔试题
引言 在翻看之前总结的常见面试题中,关于try...catch异常处理的还是蛮多了,今天看到这个面试题,也就重新学习一下. try..catch语法 try-catch语句由一个try块后跟一个或多个 ...
- 高程(4):执行环境、作用域、上下文执行过程、垃圾收集、try...catch...
高程三 4.2.4.3 一.执行环境 1.全局执行环境是最外层的执行环境. 2.每个函数都有自己的执行环境,执行函数时,函数环境就会被推入一个当前环境栈中,执行完毕,栈将其环境弹出,把控制器返回给之前 ...
- try catch里面try catch嵌套
try catch里能否内嵌try catch?答案是肯定的.但是等内层try catch出异常之后是个什么执行顺序呢?看下面代码 static void Main(string[] args) { ...
- 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
本文转载自 java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...
- java try(){}catch(){}自动资源释放
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Manag ...
随机推荐
- swift创建对象use of undeclared type 自己的类
在swift项目中,引用自己创建的类,编译会成功的,但是会出现红色感叹号,类似报错,如:swift创建对象use of undeclared type 自己的类,或者 use of unresolv ...
- C++虐恋:MBCS安装失败导致的四天误工
情况描述:接收远程队友的C++代码,基于vc120工具集(VS2013),而我的机器上是VS2015,需要安装VS2013(只选MFC,除主程序与MFC外其余的组件全部卸掉).然后开始编译,提示 MS ...
- 安装新版本的mysql数据库
默认情况,在CentOS 6.8 下通过yum安装的是5.1.73版本,现在需求是安装5.7版本. -------------------------------------------------- ...
- 配置普通用户可以运行saltstack的模块
client_acl 配置使用 1.概述:开启对系统上非root的系统用户在master上可以执行特殊的模块.这些模块名可以使用正则表达式来表示,不能指定对哪些minion执行命令.执行命令只需要切换 ...
- PHP 如何判断当前用户已在别处登录
出处:http://bbs.lampbrother.net/read-htm-tid-121909-ds-1.html#tpc 主要思路:1.登录时,将用户的SessionID记录下来2.验证登录时, ...
- [大牛翻译系列]Hadoop(17)MapReduce 文件处理:小文件
5.1 小文件 大数据这个概念似乎意味着处理GB级乃至更大的文件.实际上大数据可以是大量的小文件.比如说,日志文件通常增长到MB级时就会存档.这一节中将介绍在HDFS中有效地处理小文件的技术. 技术2 ...
- 百度的domain命令到底有用吗?
曾几何时,站长和seoer们在百度输入domain:xxxxxxxx的时候弹出的结果数量让多少人兴奋和失落,为什么我们对百度的domain命令如此着迷呢?因为我们都认为百度的domain命令是查询网站 ...
- Yii2框架数据库增删改查小结
User::find()->all(); //返回所有用户数据:User::findOne($id); //返回 主键 id=1 的一条数据: User::find()->wh ...
- C#中gridView常用属性和技巧介绍
.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; .得到当前选定记录某字段的值 sValue=Table.Rows[gridV ...
- SQL中的自定义函数Function
先给出一个链接吧,别人写的:http://www.cnblogs.com/diony/archive/2010/12/17/1909014.html 总结得很全面,感谢感谢!自己练习了一下后面的例子, ...