我已经体会到了异常处理的重要性,但总觉得不知道在程序中如何去用,请大家谈谈心得。
解决方案 »
- delphi 处理数据库
- 怎样让WEBservice运行时获的自己所在的目录?
- 请教一个dbgrid问题,能否按顺序的选择dbgrid的每一列,然后对这一列中的每一行做比较?
- HRgn在哪个Unit里头啊?
- Delphi可以使用VC做的DLL还原的LIB吗?
- 请教如何创建MDIChild子窗体?
- delphi 怎么实现类似试卷中考试题目与答案的显示?
- 能不能在一台机器上读取另一台机器的串口数据?
- 如何在软件在实现手机发短讯!
- delphi通过OPC server与西门子300通信的问题
- 寻找控件,嘿嘿
- Ttable.edit后,Ttable.fieldbyname('字段名').asstring=值,出错
StrToInt('222');
except
showmessage('不是整数!');
end; Application.CreateForm(TForm_IC,Form_IC);
Try
Form_IC.showModal;
Finally
Form_IC.Release;
end;
在t r y. . . e x c e p t语句中可以进行抛出异常和处理异常的工作。
t r y. . . e x c e p t语句的一般形式如下:
t r y
S t a t e m e n t s 1 ;
e x c e p t
on Exception1 do HandleStatements1;
on Exception2 do HandleStatements2;
. . .
on ExceptionN do HandleStatementsN;
e l s e
S t a t e m e n t s 2 ;
e n d
其中S t a t e m e n t s 1为程序中的普通代码,可以为复合语句。在S t a t e m e n t s 1中可能会抛出异常:
通过r a i s e语句可以抛出异常,运行时错误也可以抛出异常。
当异常产生后,程序就转到e x c e p t部分。e x c e p t部分有一个或多个异常列表,其中E x c e p t i o n 1~
E x c e p t i o n N为异常对象。如果产生的异常对象为E x c e p t i o n 1,则执行H a n d l e S t a t e m e n t s 1语句。
H a n d l e S t a t e m e n t s 1语句也可以是复合语句。
如果异常列表中没有当前产生的异常对象,则执行e l s e部分。e l s e 部分为可选项。
S t a t e m e n t s 2也可以为复合语句。
最后以e n d结尾。
在t r y. . . e x c e p t语句中可以进行抛出异常和处理异常的工作。
t r y. . . e x c e p t语句的一般形式如下:
t r y
S t a t e m e n t s 1 ;
e x c e p t
on Exception1 do HandleStatements1;
on Exception2 do HandleStatements2;
. . .
on ExceptionN do HandleStatementsN;
e l s e
S t a t e m e n t s 2 ;
e n d
其中S t a t e m e n t s 1为程序中的普通代码,可以为复合语句。在S t a t e m e n t s 1中可能会抛出异常:
通过r a i s e语句可以抛出异常,运行时错误也可以抛出异常。
当异常产生后,程序就转到e x c e p t部分。e x c e p t部分有一个或多个异常列表,其中E x c e p t i o n 1~
E x c e p t i o n N为异常对象。如果产生的异常对象为E x c e p t i o n 1,则执行H a n d l e S t a t e m e n t s 1语句。
H a n d l e S t a t e m e n t s 1语句也可以是复合语句。
如果异常列表中没有当前产生的异常对象,则执行e l s e部分。e l s e 部分为可选项。
S t a t e m e n t s 2也可以为复合语句。
最后以e n d结尾。
要执行的语句
except
如果没有执行成功则返回的消息(一般是)
finally
用来做后继工作的
end;
要执行的语句
except
如果没有执行成功则返回的消息
end;调试时,先编译,然后保存,打开并执行.exe文件