exception的疑问(36)

  • 主题发起人 主题发起人 terry_zhou82
  • 开始时间 开始时间
T

terry_zhou82

Unregistered / Unconfirmed
GUEST, unregistred user!
真的搞不懂这2个代码有什么区别?代码1:EFileOpenError=class(Exception)end;.....tryFileOpenDialog.Execute;excepton E:Exception do beginraise EFileOpenError.Create('请升级到VISTA以上版本');end;end;end.代码2:。。。。。tryFileOpenDialog.Execute;exceptshowmessage('请升级到VISTA以上版本');end;end.以上的2各代码具体有什么区别呢?我在使用过程中好像没有碰到过问题吗,都是执行一样的结果。
 
效率问题Raise调用的是MessageBox()这个API函数而ShowMessage调用的是TMessageForm
 
如果:try ...except on E:Exception do begin raise EFileOpenError.Create('请升级到VISTA以上版本')
end;end;A:=1;那么A:=1;这一句不会被执行;用showmessage('请升级到VISTA以上版本');的话,A:=1;这一句会被执行的。
 
那么看来从任何方向来说哦,还是代码二好喽,代码又省,又好吗,
 
还有,哪个效率高呢?
 
明显D自己的MSG窗口不如API的效率高了
 
不懂异常的合理使用就是没有理解OOP的精髓。。。。
 
接受答案了.
 
后退
顶部