- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
异常和IO.ppt
第7章 异常、IO 异常 实现主逻辑代码与错误处理代码分离。 从System.Exception继承而来。 常见的有除零异常、越界异常、空引用异常。 异常处理模型 try块 放置产生异常的代码 catch块 放置处理异常的代码 异常类支持的功能 描述错误的可读文本。 错误的性质及建议操作保存在Message属性中。 发生异常时调用堆栈的状态。 错误发生位置的堆栈跟踪保存在StackTrace属性中。 Exception类 Exception基类下的两种异常 从SystemException派生的预定义公共语言运行库异常类。 从ApplicationException派生的用户定义的应用程序异常类。 try、catch和finally 处理异常代码的执行过程 try、catch和finally 一个try块可以: 有一个或多个相关的catch块,无finally块。 有一个finally块,无catch块。 包含一个或多个catch块,同时有finally块。 未处理的异常 当try块发现了异常而没相应的catch块处理,会发生什么? 调试时 未处理的异常 当try块发现了异常而没相应的catch块处理,会发生什么? 运行时 使用多个catch try{…} catch(FormatException fEx){…} catch(OverflowException oEx){…} catch(InvalidOperationException ioEx){…} catch(Exception ex){…} //最后用异常的基类,确保不在上述范围内的异常都被抓取 捕捉多个异常 try {…} catch(Exception ex) {…} //直接用异常的基类,无须确定具体的异常类型,统统抓取 finally块 finally块中的代码总是被运行。 TextReader reader = null; try { reader = src.OpenText(); string line; while((line = reader.ReadLine()) != null) { source.Text += line + “\n”; } } finally { if(reader != null) { reader.Close(); } } throw throw用于手动抛出异常。 语法: throw new System.Exception(); 只能抛出System.Exception类或其子类。 自定义异常 当需要额外的功能时,可以自定义异常。 继承自System.ApplicationException。 示例介绍 输入错误时的运行界面 IO 流的概念。 输入、输出基础类。 IO File和Directory类 FileInfo和DirectoryInfo类 FileStream … FileStream outStream = null; try{ FileInfo bytesFile = new FileInfo(@”C:\temp\numbers1.dat”); outStream = bytesFile.OpenWrite(); for(byte i = 0; i 10; i++) {outStream.WriteByte(i);} … FileStream inStream = null; try{ FileInfo bytesFile = new FileInfo(@”C:\temp\numbers1.dat”); inStream = bytesFile.OpenRead(); … for(int i = 0; i inStream.Length; i++) { temp = inStream.ReadByte(); Console.WriteLine(temp); totalSum += temp; } … StreamWriter … try{ FileStream aFile = new FileStream(@”C:\Log.txt”, FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(aFile); sw.WriteLine(“Hello to you.”); sw.WriteLine(“It is now {0} and things are lo
文档评论(0)