欢迎来到天天文库
浏览记录
ID:51993109
大小:953.50 KB
页数:24页
时间:2020-03-27
《《异常、结构与枚举》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章异常、结构与枚举目标理解如何调试应用程序和排除错误掌握如何测试C#应用程序了解测试和调试的区别在程序中进行错误捕获和错误处理简介应用程序开发可以安装在客户端机器上应用程序必须无错误无故障可靠稳健查找和排除错误或故障称为调试异常帐户姓名余额300123张三300124王五47,000311320李四网上银行张三转帐25000到李四的帐面上020,000数据库系统将查询发送到数据库中tranfer_money(){sendquery();}…….…….余额=20000-25000程序崩溃拒绝交易错误系统出现故障“C#”中的异常C#中的异常处理...INPUTDiv
2、isorIFDivisor=0THENResult=Divident/Divisor....代码片段1输入除数结果=_024GOTOPREVIOUSLINE触发异常处理程序C#中的异常处理...INPUTDivisorResult=Divident/Divisor....代码片段1“用户自定义”错误检查机制难以检查输入的任何“特殊字符”IFDivisor=0THENGOTOPREVIOUSLINEIFDivisor<0THENPRINT“无效输入”运行库运行库应当提供“错误检查机制”System.Exception3-1System.Exception属性Messa
3、geSourceStackTraceInnerExceptionSystem.Exception在C#程序中,引发异常共有以下两种方式使用显式throw语句来引发异常。在此情况下,控制权将无条件转到处理异常的部分代码使用语句或表达式在执行过程中激发了某个异常的条件,使得操作无法正常结束,从而引发异常Try...Catch...Finallytry和catch块滤水器filter_water(){try{water();}catch{impurities.Show();}}…….…….过滤水杂质//程序代码//错误处理代码try{//程序代码}catch(IOExce
4、ptionE){//错误处理代码}try和catch块try{//程序代码}catch(IOExceptionE){//错误处理代码}I/O设备可以生成错误try和catch块try{//程序代码}catch(E){//错误处理代码}可处理系统中的任何一种异常System.Exceptiontry和catch块if(UserInput<1&&UserInput>100){thrownewInvalidNumberInput(UserInput+“不是有效输入(请输入1和100之间的数字)”);}throw可用来引发自定义异常“InvalidNumberInput”使
5、用finallytry{//程序代码}catch{//错误处理代码}finally{//finally代码}无论控制流如何都会执行多重catch块try{//程序代码}catch(IOExceptionE){//错误处理代码}catch(OutOfMemoryExceptionE){//错误处理代码}用于捕捉两种异常的“catch”块多重catch块publicclassMyCustomException:System.ApplicationException{publicMyCustomException(stringmessage):base(message){
6、}}try{quotient=dividend/divisor;}catch(MyCustomExeptionex){Console.WriteLine(ex.Message);}……………………….……………………….if(divisor==0)thrownewMyCustomException(“除数不能为零");……………示例-建立自定义异常usingSystem;publicclassEmailErrorException:ApplicationException{publicstring_message;//重写构造函数publicEmailErrorEx
7、ception():base(){_message=null;}publicEmailErrorException(stringmessage):base(){_message=message.ToString();}publicEmailErrorException(stringmessage,ExceptionmyNew):base(message,myNew){_message=message.ToString();}//Message属性的重载publicoverridestringMessage{get{return"Email格式错误。";}}}示例
此文档下载收益归作者所有