文件名称:套嵌的异常处理语句-京东应用架构设计
文件大小:7.56MB
文件格式:PDF
更新时间:2024-06-30 04:57:24
Delphi 2010 语法
6.6 套嵌的异常处理语句 异常处理语句可以套嵌。Delphi中有两种例程处理请问,理论上应该有 4种套嵌,但 实际上只要读者掌握了每种异常处理语句的执行过程,任何套嵌均不是问题。签于此,我 们不会浪费一大堆笔墨介绍一些很浅显的东西。本节我们只介绍两个 try...except...套 嵌的情形。之所以单单介绍这种情形,一是因为这种情形最具代表性,二者我们打算通过 这种情形介绍一个概念:异常对象的丢失。 其形如下: try try...except... end; except ... end; 在这种套嵌语句中,只有内层的语句处理不了异常或者我们在其中手动重新触发了异常 时,这个异常才会被交给外层的 try...except...语句进行处理。看下面的例子: ...//前面内容与上个例子完全一样 begin writeln('请输入数字 i的值'); read(i); try try writeln(inttostr(9 div i)); except on T1 do //由 TObject变成了 T1 showmessage('this is TObject'); //else // end; except showmessage('Outer Except'); end; readln; end. 请读者再一次输入 0,由于内层的 try...except...中的 except...部分中的 on语句 中的类型变成了 T1,这个类与内层 try...部分的语句所产生的异常所属的类不兼容,所以 这条处理语句不能处理异常。异常将被提交到外层的 try...except...中进行处理。所以 运行的结果是显示对话框,其显示的内容为"Outer Exception"。 现在请读者将 else前的双斜杆去掉再运行,此时程序不会显示任何对话框,因为内层