Delphi异常处理机制
2015-12-07 12:24
423 查看
转自:http://blog.sina.com.cn/s/blog_5d9ee55e010103kr.html
Delphi的异常处理方式有两种:try...except...end;try...finally...end;。try...except主要用于捕获异常,只有出现异常的时候才会执行except部分。try...finally主要用于资源释放,无论try语句块是否有异常都会执行finally语句块。
如下面的代码:
1 try
2 raise exception.create('发现异常');
//在try语句块中抛出一个异常
3 except
4 on e:Exception do //捕获异常
5 begin
6 showMessage(e.message);
7 end;
8 end;
用try..except是不会出现异常提示信息的对话框,需要自己主动去show出异常信息。而try..finally.则会出现异常提示信息。try..except和try..finally可以相互嵌套。
使用on e:Exception do可以精确处理特定的异常。Exception是所有异常类的基类,Delphi内部就定义了处理常见异常的异常类(在SysUtils单元中),也可以从Exception继承定义自己的异常类
使用raise语句可以抛出一个异常:
01 EMyException=class(Exception)
02 end;
03 try
04 try
05 raise EMyException.Create('我自己的异常');
06 except
07 on e:EMyException do
08 showMessage(e.message);
09 end;
10 finally
11 showMessage('我始终被执行');
12 end
Delphi的异常处理方式有两种:try...except...end;try...finally...end;。try...except主要用于捕获异常,只有出现异常的时候才会执行except部分。try...finally主要用于资源释放,无论try语句块是否有异常都会执行finally语句块。
如下面的代码:
1 try
2 raise exception.create('发现异常');
//在try语句块中抛出一个异常
3 except
4 on e:Exception do //捕获异常
5 begin
6 showMessage(e.message);
7 end;
8 end;
用try..except是不会出现异常提示信息的对话框,需要自己主动去show出异常信息。而try..finally.则会出现异常提示信息。try..except和try..finally可以相互嵌套。
使用on e:Exception do可以精确处理特定的异常。Exception是所有异常类的基类,Delphi内部就定义了处理常见异常的异常类(在SysUtils单元中),也可以从Exception继承定义自己的异常类
使用raise语句可以抛出一个异常:
01 EMyException=class(Exception)
02 end;
03 try
04 try
05 raise EMyException.Create('我自己的异常');
06 except
07 on e:EMyException do
08 showMessage(e.message);
09 end;
10 finally
11 showMessage('我始终被执行');
12 end
相关文章推荐
- Delphi 快速检测是否联网
- 用C#实现Delphi的TStringList类
- delphi 手电筒
- Delphi 函数指针(三大好处:灵活,委托的本质,回调机制),还可把函数指针当参数传入
- Delphi获取本机的MAC地址
- delphi读取和写入文件-richedit控件
- Delphi下POS机
- Android问题-DelphiXE8安装后编译Android提示SDK无法更新问题(XE10也可以解决)
- 自写的LastPos,寻找字符串里的最后一个字符,RTL里没有提供这个函数——Delphi的String下标是从1开始的
- 怎样在DELPHI中使用API函数
- 怎样在DELPHI中使用API函数
- Delphi字段类型和不同数据库对应.txt
- Delphi与SQL模糊like通配符查询(转载)
- Delphi通过IE窗口句柄获取网页接口(IWebBrowser2) good
- Delphi中的Rtti函数
- 强大的DELPHI RTTI–兼谈需要了解多种开发语言
- Delphi中运行时改变panel的位置及大小(WM_SysCommand消息配合参数使用,很奇妙) good
- Delphi判断一个文件是不是JPG图片
- delphi中覆盖最大化消息(WM_GETMINMAXINFO)
- Delphi中TWebBrowser中注入Js