象你这样没有上下文的提问真是会看死人的~~~
我估计你的"声明抛出异常"就是程序中显式的抛出一个异常吧。
为什么要抛出异常?这个问题会引发一大堆编程方法上的讨论的。
下面这个例子不知有没有用:
fucntion div1(x,y:Integer:do
uble;
begin
if y=0 then
Result :=0 else
Result := x/y;
end;
function div2(x,y:Integer):do
uble;
begin
if y<> then
Result := x/y else
raise EDivZero.Create('除0错');
end;
那么调用时有这些差异
1)
c := div1(a,b);
if a<>0 and c=0 then
showmessage('除0错')
else
... //c就是结果了,下面继续其它代码的处理
2)
try
c := div2(a,b);
//下在要用到c结果的代码,但因为div2已经抛出异常了,所以肯定没机会执行
except
on E: Exceptiondo
ShowMessage(E.Message);
end;