ch2objectpascal语法规范.ppt

  1. 1、本文档共188页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch2objectpascal语法规范

“异常类型”说明: 为更好地处理异常,常在异常处理语句的“异常类型”前指定一个标识符,这个标识符在on...do后的语句执行期间表示异常对象,不过异常对象仅限于其后的一个语句。例如: try … 枣庄学院精品课程 “异常类型”说明: except on E:异常类名 do ShowMessage(E.Message); end; 这里,标识符E就是捕捉到的当前程序产生的异常对象名,它只能在这个on…do语句中使用。同时,在上面例子中使用了异常对象的Message属性,这个属性保存的是异常说明信息。 枣庄学院精品课程 异常类名 产生异常原因 Eabort 不显示异常信息对话框的异常 EheapException 定位堆栈内存产生的异常 EoutOfMemory 不能分配内存生成的异常 EinOutError 文件输入/输出错误产生的异常 Eexternal 外部错误造成的异常 EexternalException 运行期库中有无效的异常代码 EintError 所有整数运算产生异常的祖先类 EdivByZero 被0初,是EintError的派生类 ErangeError 范围错,是EintError的派生类 EIntoverflow 整数运算结果超出保存范围引起的异常,是EintError的派生类 EmathError 所有浮点运算错误的祖先类 EinvalidOp 处理器遇到没定义的指令,是EmathError的派生类 EOverflow 浮点运算结果太大,超出浮点数表示的范围,是EmathError的派生类 EUnderflow 数值太小而无法用浮点数表示引起的错误,是EmathError的派生类 EzeroDivide 被0整除,是EmathError的派生类 EInvalidArgument 参数出界,是EmathError的派生类 枣庄学院精品课程 现举一个使用try…except语句处理异常的例子,此例为Dos控制台程序,建立方法为: File→ New→ Other → New → Console Application → OK: 程序清单如下: program Project1; {$APPTYPE CONSOLE} uses SysUtils; var R1,R2:Double; 枣庄学院精品课程 begin while True do Begin try //设置陷井 write(输入一个实数:); readln(R1); write(输入另一个实数:); ReadLn(R2); writeln(现在用第二个数除第一个数); 枣庄学院精品课程 except // 捕捉错误 on EzeroDivide do // 处理被0除错误 writeln(不能被0除!); on EinOutError do //处理输入/出错误 writeln(不是有效数); end; end; end. 枣庄学院精品课程 2. try…finally语句 使用格式; try 语句序列1; finally 语句序列2; end; 功能:无论“语句序列1”是否出现异常,程序都将执行“语句序列2”。 枣庄学院精品课程 下面是使用这个语句程序清单: program try_finally; {$APPTYPE CONSOLE} uses SysUtils,dialogs; var F:TextFile; S: string; Begin AssignFile(F,c:\Foo.txt); Try //设置外层陷井, Reset(F); 枣庄学院精品课程 Try //置内层陷井 ReadLn(F,S); //读一行信息到S变量中 Finally CloseFile(F); //关闭文件 End; Except //处理外层陷井捕获的异常 on EInoutError do ShowMessage(访问文件错误!); End; ShowMessage(S); end. End. 枣庄学院精品课程 3. 方法覆盖(Overriding methods) 面向对象编程的多态概念是通过方法覆盖实现的。在派生类中定义方法时要使用override关键字代替父类定义方法时使用的virtual或dynamic关键字。 例如,下面派生类TForm1Child中定义的方法可覆盖上面例子中在类TForml中定义的Virt

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档