欢迎来到天天文库
浏览记录
ID:52769651
大小:374.90 KB
页数:20页
时间:2020-03-07
《C#编程技术基础 教学课件 作者 武汉厚溥教育科技有限公司11_C#面向对象高级编程11.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#面向对象高级编程第11章:异常1理解异常的概念了解异常的分类掌握try块、catch块和finally块掌握多重catch和嵌套try-catch了解throw子句的用法了解自定义异常目标2可以使用Array类的CreateInstance方法来创建Array对象,也可以直接创建数组对象集合用于管理在运行时动态创建的元素项ArrayList在Array的基础上提供了动态的特性用户可以使用Hashtable类将数据、键作为一组来存储,这些数据是根据键进行组织的Array类属于System命名空间,而Array
2、List类属于System.Collections命名空间泛型可以提高减少程序的代码量,并能实现安全和提高效率List是最常用的泛型集合类回顾3异常4异常(exception)是在运行过程中代码序列中产生一种例外情况一学期中,使用if...else...来控制异常异常//四则运算程序片段if(运算符号错误){报告错误}elseif(数字超出范围){报告错误}elseif(被除数为0){报告错误}else{正常运行}System.IndexOutOfRangeException5C#语言在设计的当初就考虑到
3、了异常处理,提出错误和异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的子类异常,定义了异常处理的规范处理异常6异常说明Exception异常层次结构的根类RuntimeException当出现运行时错误,并且无法确定具体原因时,引发的异常。ArithmeticException算术错误,如除数为0IndexOutOfBoundsException数组下标越界NullReferenceException尝试取消引用空对象引用时引发的异常。IOExceptionI/O异常的根类SQL
4、ExceptionSQL数据库异常常见的异常类型7C#异常处理通过4个关键字控制:try、catch、throw和finally异常的处理try{//要监控是否有异常的代码}catch(ExceptionType1ex1){/*对异常进行必要的处理*/}catch(ExceptionType2ex2){/*对异常进行必要的处理*/}finally{//try块结束前必须将执行的代码块}8try-catch结构try{代码A代码B}catch(ExceptionTypee){异常处理}代码C如果异常未被处理,程序
5、中止运行ABCAB异常处理C期望:实际:实际:9A异常处理C示例classTestTryCatch{staticintGetInt(int[]array,intindex){try{returnarray[index];}catch(System.IndexOutOfRangeExceptione)//{System.Console.WriteLine(e.Message);//setIndexOutOfRangeExceptiontothenewthrownewSystem.ArgumentOutOfRang
6、eException("indexparameterisoutofrange.",e);}}}10一个try和它的catch语句形成了一个单元。catch子句的范围限制于try语句前面所定义的语句。一个catch语句不能捕获另一个try声明所引发的异常可以使用Exception对象的toString()及方法来帮助我们排除异常。捕捉异常intd,q;Console.Write("begin!");try{//监控以下代码d=0;Console.Write("beforeexception!");q=42/d;C
7、onsole.Write("afterexception!");}catch(ArithmeticExceptione){//异常类型对象为ArithmeticExceptionConsole.Write(e.toString());}Console.Write("end!");11有些时候,try块内引用了一些物理资源,例如数据库连接、网络连接或磁盘文件等,那么一旦try块内出现异常,这些资源将无法保证被释放必须要有一种很确切的办法确保资源一定得到释放,而不管是否存在异常,这就是finally存在的原因使用f
8、inally回收资源try{代码A代码B代码C}catch(ExceptionTypee){异常处理代码D}finally{回收资源代码E}代码Ftry块catch块finally块有异常无异常ABDEFB处异常:ABCEF无异常:12示例publicstaticinttest(Strings){intlength=0;try{Console.Write("beforeexceptio
此文档下载收益归作者所有