procedure Tmediaplay.Image3Click(Sender: TObject);
var
listitem:Tlistitem;
begin
with listview2 do
try
begin
listitem:=items.Add;
listitem.Caption:=listview1.Selected.Caption;
end;
except
on EAccessViolation do
showmessage('没有歌曲可以转移,请添加歌曲!');
end;
end;
我是想在Listview1中没有内容时能显示提示框中的内容,但总也不能实现,我是个初学者,对try……except……end不太会使用,请高手们指点。
var
listitem:Tlistitem;
begin
with listview2 do
try
begin
listitem:=items.Add;
listitem.Caption:=listview1.Selected.Caption;
end;
except
on EAccessViolation do
showmessage('没有歌曲可以转移,请添加歌曲!');
end;
end;
我是想在Listview1中没有内容时能显示提示框中的内容,但总也不能实现,我是个初学者,对try……except……end不太会使用,请高手们指点。
解决方案 »
- delphi 下拉框问题
- 请教大家ADOQuery1.Open语句,提示from子句语法错误
- 关于备份
- 给clientdataset赋值后怎么不能显示数据了
- 棘手地一塌糊涂的问题:自制组件中的TListview显示不出来,在线等
- 关于FastReport中FillSpacing的疑问??急!急!急!
- Delphi 7中TcpClient 组件为何OnRead事件只有一个参数
- 向大家请问一个关于vclskin5.6皮肤控件的使用问题
- 请各位指教如何在编程访问'outlook/outlook express'的帐户信息。。
- 为何我在表中添加了新记录,可刷新后仍看不见新添加的记录
- 用sql语句实现的decode效果,在table中如何实现?
- ascii转换(在线等)
showmessage('没有歌曲可以转移,请添加歌曲!');
try……except……end
只有在引发异常时才发生,
你的那段,就没什么异常
procedure Tmediaplay.Image3Click(Sender: TObject);
var
listitem:Tlistitem;
begin
with listview2 do
try
if trim(Listview1.Selectected.Caption) = '' then
abort
else
begin
listitem:=items.Add;
listitem.Caption:=listview1.Selected.Caption;
end;
except
on EAccessViolation do
showmessage('没有歌曲可以转移,请添加歌曲!');
end;
end;
我是想在Listview1中没有内容时能显示提示框中的内容,但总也不能实现,我是个初学者,对try……except……end不太会使用,请高手们指点。
凡是 E 打头的几乎全是。但这些类型不一定包括数据库返回的错误信息。try
...
except
on E: Exception do Showmessage(E.Message);
end; //可以获得数据库返回的错误信息的内容
--------------------------------------------------------
try
...
except
on EZeroDivide do HandleZeroDivide;
on EOverflow do HandleOverflow;
on EMathError do HandleMathError;
else
HandleAllOthers; //处理所有其它异常
end;
--------------------------------------------------------
try
...
except
HandleException; //默认处理
end;
try
...
except
on E: Exception do Showmessage(E.Classname);
end;
可以返回错误的类型,但一般数据库错误会笼统的显示 EDatabaseError
--------------------------------------------------------
你在调试程序的时候Delphi会在每个Exception处中断。
运行你的*.exe你会发现一切如你所愿。如果你想在调试时不想系统弹出警告对话框,
菜单 Tools\Debugger Options...\
Language Exceptions\Stop on Delphi Exceptions 的钩钩去掉;
Tools\Debugger Options...\
OS Exceptions\Handled by 选user program;on resume选 Run Unhandled另外,如果你想要针对特定的异常进行处理,必须搞清楚它的准确名称。比如你的
on EAccessViolation do,你确定引发的异常一定是EAccessViolation吗?如果不是,当然捕捉不到。