Delphi异常处理的基本原则和方法

供稿:hz-xin.com     日期:2025-01-18
一 异常的来源  在Delphi的应用程序中 下列的情况都比较有可能产生异常     ( )文件处理    ( )内存分配    ( )Windows资源    ( )运行时创建对象和窗体    ( )硬件和操作系统冲突    二 异常的处理  ( )try…except…end;    在try体内的代码发生异常时 系统将转向except部分进行异常的处理 这是Delphi处理异常的最基本的方式之一     ( )try…finally…end;    这种异常处理结构一般用于保护Windows的资源分配等方面 它确保了无论try体内的代码是否发生异常 都需要由系统进行最后的统一处理的一些Windows对象的正确处理     和try…except…end不同 该结构的finally部分总被执行     ( )不存在try…except…finally…end结构来既处理异常 又保护资源分配的结构 但是 try…except…end结构允许嵌套到try…finally…end结构中 从而实现既处理异常 又保护资源的分配     三 异常的精确处理  ( )定义一个异常     在Delphi中 每个异常都是Exception[ ]类的一个派生类[ ] 因此 定义一个异常就是定义一个Exception类的派生类     type EMyException = class(Exception);    当然 基类可以是Exception或者Exception的任何一个任何层次的派生类     ( )在程序中抛出一个异常     根据不同的情况抛出异常是使用异常的最基本的模式 在Delphi中 由raise语句来实现     【语法】raise 异常类 Create( 异常的缺省说明 );    ( )在try…except…end中更加精确的捕捉异常     使用on E:异常类 do…结构可以在do体内处理特定异常类所抛出的异常     四 异常的调试  在Delphi IDE中 解除 Debugger Options (可以使用菜单Tools—>Debugger Options…进行访问)中的Integrated Debugging复选框的勾选状态可以进行异常的调试     五 异常的补充说明  ( )每一段程序都有可能产生错误!这是软件业的一个不容置疑的现象和规律 事实上 传统的if…else…结构完全可以解决所有的错误 使用Exception机制也没能够回避在最原始的层次 通过遍历可能的情况来产生异常的做法 那么 为什么还要异常机制?    答案很清楚 异常提供了一种更加灵活和开放的方式 使得后来的编程者可以来根据实际的情况处理这种错误 而不是使用预先设定好的处理结果 lishixinzhi/Article/program/Delphi/201311/8428



delphi 中判断异常处理的语句是什么?
try {...} except on E: Exception do begin showmessage(e.message);end;end;

在Delphi程序中try语句是什么语句,怎么用,请给指导。
异常处理语句,有两种 第一种 try d := 6 div 0; \/\/明显错误,会抛出异常.除数不能为0 except on E:Exception do ShowMessage(e.message); \/\/ 在这里处理你的异常,我这里显示出错误消息,当然可以自己定义 end;第二种 a := TStringList.create try a.add('1');Showmessage(a.strings...

delphi中如何用try...except处理异常
不会.try..Except能够拦截数据库错误信息.不知道2楼为什么这么说.你的语句没有执行是因为你的代码位置不对!try begin with adoquery1 do begin close;sql.Clear;sql.Add('insert into 设备入库表(code,name,,provider,price) values(code,name,provider,,price)');adoquery1.Parameters.ParamValues[...

DELPHI基础教程:异常处理与程序调试(三)[1]
Pass Count编辑框用于设置通过次数条件 即只有当程序运行在该断点处通过设定次数时程序运行才在该断点处中止 这往往用于对循环体内语句的调试 有一点应引起注意的是 当Condition和Pass Count同时设置时 Pass Count是指满足条件的通过次数 lishixinzhi\/Article\/program\/Delphi\/201311\/25184 ...

EurekaLog主要特点
EurekaLog主要特点如下:捕获异常和泄漏:Delphi的异常处理机制在底层实现上较为复杂,但对应用程序层来说相对简单。当异常发生时,若未被捕捉,它将逐层上抛直至被处理。若应用程序未进行异常处理,将默认调用Application.HandleException,显示一个出错红框,提供简单异常信息。定位异常位置:EurekaLog能准确...

delphi获取程序异常信息
可以啊,delphi里的异常处理功能很不错,以下是一段示例:procedure TForm1.Button1Click(Sender: TObject);var ii:integer;begin UsedTime:=0;Timer1.Enabled :=True;Try \/\/以下为你自己的处理过程。中间加入对UsedTime的判断。如果大于你预定的时间,则抛出异常 for ii:=1 to 100000000 do begin ...

在delphi 若遇到异常能否不停止继续往下执行?
在Delphi的情况中设置一下,有一个Debug Exception选项,可以设置是不是由Delphi的默认处理过程来处理异常,改成没有或者由用户处理即可。

怎样让delphi 异常时不退出循环,如for循环,用了try except end;try fi...
使用 try 。。。end 把容易出错的语句包含进去,这样如果出错,还是在循环内,多用几个try 进行嵌套保护。

delphi中用try异常处理不提示理啊。用的是delphi7
1楼的错了,输入错误调试的时候一样会报错的!只是不会执行 except 后面的异常处理,报错的错误是由delphi抛出的异常!你如果输入正确的就不会错啦,你输入一个错误的结果肯定是会报错的,例如你在edit中输入 fff 这个肯定是会报错的,如果输入555这样的纯数字转换就不会提示错误 ...

delphi 里面的try问题
1、MessageBox的第二个参数是PWideChar,即字符串格式,你的StrToInt(Edit2.Text)的返回值是整型的,当然会触发异常了。2、在异常处理语句中,ShowMessage();要求的参数是字符串形式,showmessage('我不知道你输入的是什么东西!');这个语法上没有问题。3、在异常处理语句中,messagebox(handle,'我不知道...