delphi 错误的处理
delphi 异常的处理
[code=Delphi(Pascal)]delphi 处理异常 分两种 try..finally 和 try...except
什么时候用try..finally呢?
什么时候用try...except呢?
以及他们的区别[code]
还请大家门谈谈 异常—的作用好处?
------解决方案--------------------
你呀,可以做个小实例的
有一个是try是即使无任出现任何问题,都会执行的
另一个try是当出现问题,再执行定义的代码的与
if () then
begin
end
else
begin
end;
是一个理的
------解决方案--------------------
我不为楼主这样的标题所吸引,
也不是被帖子的内容所迷惑。
我不是来抢沙发,
也不是来打酱油的。
我不是来为楼主呐喊加油的,
更不是对楼主进行堵截攻击的。
我只是为了每天的积分默默奋斗。
你是个美女,我毫不关心,
你是个怪兽,我决不在意,
你是个帅哥,我不会妒忌,
你是个畜男,我也不会BS。
你的情操再怎么高尚,我也不会赞美,
你的道德如何沦丧,我也不为所动。
在这个处处都要积分的时代,
我不得不弄个牛B的数字来显眼,
于是我抄下了这段话,专门用来回帖,
好让我每天有固定的积分进账
------解决方案--------------------
在你觉得会出错的代码处用,一般用except即可,finally常见的是一些Free操作写在这里,我个人觉得except可以代替finally,在except后面的end下面写代码就等效于finally了。
------解决方案--------------------
容易出错的地方用except,然后在excedpt中处理异常,至于那些地方容易出错,这个要靠自己慢慢积累经验了
想要某些代码一定执行的话用finally,这2个都可以互相嵌套
------解决方案--------------------
var i:integer;
try
i := strToInt(Edit1.Text);//你这个EDIT1可能输入的是'123'类数字,也可能输入的是'ABC'类的字段串,如果是前者,则代码能正常执行,若后者,程序则出错。
except
Showmessage('请输入合法的数字!');
end;
/////////////////////////////////////////////////////////////////////////////////////
var s:TStringList;
b:string;
try
s := TStringList.Create();
//这里要对s进行一些操作。或者说也有类似于strToInt(Edit1.Text);类的操作。
finally
s.Free;//s用完后要确保s被释放
end
------解决方案--------------------
你查一下 delphi里的帮助 ,都有很详细的说明
------解决方案--------------------
呵呵,楼主可要努力了呀
------解决方案--------------------
except后的语句只有发生异常才执行,而finally后的语句一定要执行,不论有无异常。所以有些异常处理的语句放在except后,而善后处理的语句则放在finally后。前者如弹出对话框要使用者处理;后者如关闭文件、释放内存等。
------解决方案--------------------
------解决方案--------------------
10楼正解,finally里面是无论如何都会执行的。而except中是你产生的错误中执行的代码,没有错误,就不会执行,有分错误类型处理的作用
------解决方案--------------------
记得delphi白皮书里是建议用finally的,因为它肯定会执行,可以把释放写在里面
------解决方案--------------------
------解决方案--------------------
天天有人问这问题
except后的语句只有发生异常才执行,而finally后的语句一定要执行,不论有无异常。所以有些异常处理的语句放在except后,而善后处理的语句则放在finally后。前者如弹出对话框要使用者处理;后者如关闭文件、释放内存等。
[code=Delphi(Pascal)]delphi 处理异常 分两种 try..finally 和 try...except
什么时候用try..finally呢?
什么时候用try...except呢?
以及他们的区别[code]
还请大家门谈谈 异常—的作用好处?
------解决方案--------------------
你呀,可以做个小实例的
有一个是try是即使无任出现任何问题,都会执行的
另一个try是当出现问题,再执行定义的代码的与
if () then
begin
end
else
begin
end;
是一个理的
------解决方案--------------------
我不为楼主这样的标题所吸引,
也不是被帖子的内容所迷惑。
我不是来抢沙发,
也不是来打酱油的。
我不是来为楼主呐喊加油的,
更不是对楼主进行堵截攻击的。
我只是为了每天的积分默默奋斗。
你是个美女,我毫不关心,
你是个怪兽,我决不在意,
你是个帅哥,我不会妒忌,
你是个畜男,我也不会BS。
你的情操再怎么高尚,我也不会赞美,
你的道德如何沦丧,我也不为所动。
在这个处处都要积分的时代,
我不得不弄个牛B的数字来显眼,
于是我抄下了这段话,专门用来回帖,
好让我每天有固定的积分进账
------解决方案--------------------
在你觉得会出错的代码处用,一般用except即可,finally常见的是一些Free操作写在这里,我个人觉得except可以代替finally,在except后面的end下面写代码就等效于finally了。
------解决方案--------------------
容易出错的地方用except,然后在excedpt中处理异常,至于那些地方容易出错,这个要靠自己慢慢积累经验了
想要某些代码一定执行的话用finally,这2个都可以互相嵌套
------解决方案--------------------
var i:integer;
try
i := strToInt(Edit1.Text);//你这个EDIT1可能输入的是'123'类数字,也可能输入的是'ABC'类的字段串,如果是前者,则代码能正常执行,若后者,程序则出错。
except
Showmessage('请输入合法的数字!');
end;
/////////////////////////////////////////////////////////////////////////////////////
var s:TStringList;
b:string;
try
s := TStringList.Create();
//这里要对s进行一些操作。或者说也有类似于strToInt(Edit1.Text);类的操作。
finally
s.Free;//s用完后要确保s被释放
end
------解决方案--------------------
你查一下 delphi里的帮助 ,都有很详细的说明
------解决方案--------------------
呵呵,楼主可要努力了呀
------解决方案--------------------
except后的语句只有发生异常才执行,而finally后的语句一定要执行,不论有无异常。所以有些异常处理的语句放在except后,而善后处理的语句则放在finally后。前者如弹出对话框要使用者处理;后者如关闭文件、释放内存等。
------解决方案--------------------
------解决方案--------------------
10楼正解,finally里面是无论如何都会执行的。而except中是你产生的错误中执行的代码,没有错误,就不会执行,有分错误类型处理的作用
------解决方案--------------------
记得delphi白皮书里是建议用finally的,因为它肯定会执行,可以把释放写在里面
------解决方案--------------------
------解决方案--------------------
天天有人问这问题
except后的语句只有发生异常才执行,而finally后的语句一定要执行,不论有无异常。所以有些异常处理的语句放在except后,而善后处理的语句则放在finally后。前者如弹出对话框要使用者处理;后者如关闭文件、释放内存等。