Visual Basic.NET编程PPT电子课件教案-第5章 运行错误和异常处理.ppt_第1页
Visual Basic.NET编程PPT电子课件教案-第5章 运行错误和异常处理.ppt_第2页
Visual Basic.NET编程PPT电子课件教案-第5章 运行错误和异常处理.ppt_第3页
Visual Basic.NET编程PPT电子课件教案-第5章 运行错误和异常处理.ppt_第4页
Visual Basic.NET编程PPT电子课件教案-第5章 运行错误和异常处理.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 运行错误和异常处理 5.1 什么是异常 5.2 结构化异常处理 5.3 非结构化异常处理(了解) 5.1 什么是异常 n异常:是程序运行时发生的错误 n程序错误类型: n语法错误 n逻辑错误 n运行时错误(异常) n语法错误: n例子:比如将关键字写错。 n检查:由编译程序检查,有语法错误的程序不能 执行。 n处理:由人工修改程序语句。 n逻辑错误: n例子:比如输入一个数字时出现两个小数点。 n检查:由运行结果来验证。 n处理:由人工修改程序逻辑。 5.1 什么是异常 n异常 运行错误: n例子:比如用0作除数、计算负数的平方根。 n检查:由操作系统检查,运行错误(异常)发生 时,程序终止执行。 n处理: n由人工修改程序语句。 n结构化异常处理语句:在程序中使用 try/catch来处理异常,使得程序运行不会中 断。 n非结构化异常处理语句:在程序中使用on error来处理异常,使得程序运行不会中断。 5.1 什么是异常 n限制:结构化与非结构化异常处理语句不能在一个 过程中同时使用。 n说明:非结构化异常处理是vb6.0的延续。 n异常类:vb.net定义了几十种异常类。所有异常 类都直接或间接地继承于system.exception类 。 n异常类层次结构:异常类根据错误类型组织成层次 结构。部分异常类层次结构如下页图。 n优点: n可以将逻辑代码和异常处理代码隔离 n使得代码更加易读,易调试 5.1 什么是异常 exception |-pathtoolongexception |-systemexception |-arithmeticexception |-dividebyzeroexception |-overflowexception |-invalidcostexception |-ioexception |-fileloadexception |-filenotfoundexception n异常类属性: nmessage:string类型,异常说明。 nsource:string类型,引起异常的对象 名。 nhelplink: nstacktrace: n使用方法: dim e as exception msgbox(e.message) 5.1 什么是异常 1、try / catch 语句 n语法: trytry块 可能发生异常的语句块 catch ex as 异常类名 catch块,ex自定变量名。 异常处理语句,如果异常发 生则执行,否则不执行 finally finally块,可选部分 在try块或catch块后执行 end try 5.2 结构化异常处理 2、例子: dim s,r as string s=”abcd” try r=s.remove(4,5) catch ex as argumentoutofrangeexception msgbox(”something is wrong.”) msgbox(e.message & e.source) end try 3、例子:如果不知道具体的异常类名,可以直 接使用exception类。 dim s,r as string s=”abcd” try r=s.remove(4,5) catch ex as exception msgbox(”something is wrong.”) msgbox(e.message & e.source) end try 4、嵌套try/catch语句 ntry块受保护:try块中语句如果出错,由 catch块中语句接管,程序因此不会中断。 ncatch块不受保护:catch块中语句如果出错 ,无语句接管,程序会中断。 nfinall块不受保护:catch块中语句如果出错 ,无语句接管,程序会中断。 n解决方法:使用嵌套try/catch语句。 try 可能发生异常的语句块 catch ex 某异常名1 try嵌套try/catch 可能发生异常的语句块 catch e1 as 某异常名2 end try finally try 嵌套try/catch 可能发生异常的语句块 catch e1 as 某异常名3 end try end try 5、多个catch语句 n语法:catch块可以有多个,语法如下页。 n执行:只有一个catch块被执行。 n多个匹配:如果多个catch块的异常有重复部分,则 第一个符合条件的catch块被执行。 n无匹配:如果没有匹配的catch块,则异常被传递给 调用者。如果调用者是操作系统,则程序中断。 n过滤规则:将 catch 语句块从处理特殊情况排列到处 理一般情况。 n多个catch语句语法 try 可能发生异常的语句块 catch ex as 某异常名1 如果异常1发生则执行,否则不执行 catch ex as 某异常名2 如果异常2发生则执行,否则不执行 catch ex as 某异常名3 如果异常3发生则执行,否则不执行 end try n多个catch块过滤 try catch ex as exception无过滤 catch ex as 某异常名1不可能被执行 catch ex as 某异常名2不可能被执行 end try n匹配第一个catch块 try y=0 x=5/y catch ex as fileloadexception 不匹配,不被执行。 catch ex as dividebyzeroexception 过滤 匹配,被执行 catch ex as exception 匹配,被过滤,不被执行 end try n无catch块匹配 try y=0 x=5/y catch ex as fileloadexception 不可能被执行,异常被传递给调用者。 如果调用者是操作系统,则程序中断。 end try 6、throw语句 n功能:将异常传递给调用者处理。 n使用方法: nthrow nthrow 异常类名 n例子: dim s,r as string s=”abcd” try r=s.remove(4,5) catch ex as exception throw end try 7、exit try语句 n功能:从try/catch块中跳出,执行块后续语句。 n例子: dim r,s as string try s = “abcd“ r = s.remove(4, 5) exit try r = s.remove(4, 2)不会执行 catch ex as exception msgbox(“klklklkl“) exit try msgbox(ex.message) 不会执行 end try x=1exit try跳到此处。 8、例子 try fs = new filestream(“data.txt“, _ filemode.open) catch ex as filenotfoundexception messagebox.show(“file not found“) catch ex as exception messagebox.show(ex.message) end try 8、例子 try fs = new filestream(“data.txt“, filemode.open) catch ex as filenotfoundexception messagebox.show(“data file missing“) catch ex as exception messagebox.show(ex.message) finally if not (fs is nothing) then fs.close( ) endif end try 8、例子 if (day 365) then throw new _ argumentoutofrangeexception( ) else . end if 1、on error语句 n用于过程: private sub 过程名字(参数) on error goto l1如果有异常,转l1处 。 过程代码段 exit sub 若无异常发生,过程结束。 l1: 错误处理代码段 end sub 5.3 非结构化异常处理 1、on error语句 n用于函数: private function 函数名字(参数)as 类型 on error goto l1如果有异常,转l1处 。 函数代码段 exit function 若无异常发生,函数结束。 l1: 错误处理代码段 end function 5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论