金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  423 随笔 :: 0 文章 :: 454 评论 :: 0 Trackbacks

库函数接口注意

DLLs and libraries should handle all exceptions to prevent the display of errors and warnings through Windows dialogs.
-- From Delphi help: Creating packages and DLLs

DLL输出函数抛异常通常会导致程序崩溃。
而且错误很难定位。

应用try/except包裹所有的输出函数。
输出函数的参数也要严格检查。
 
(转载请注明来源于金庆的专栏)


posted on 2007-08-10 16:36 金庆 阅读(993) 评论(5)  编辑 收藏 引用 所属分类: 1. C/C++

评论

# re: 输出函数不应抛异常 2007-08-10 23:20 SmartPtr
也就是说异常不能抛出其所在模块了。。。 在公司讨论的时候谈到过这个问题, 不知楼主可否展开来谈一下。。。  回复  更多评论
  

# re: 输出函数不应抛异常 2007-08-13 11:41 金庆
@SmartPtr
对于DLL,肯定是不应该让异常抛过界。对于库模块,抛异常与返回错误实质是一样的。  回复  更多评论
  

# re: 输出函数不应抛异常[未登录] 2007-08-17 18:56 flyman
@金庆
但抛异常可以带相应的描述,不用再找源码对应错误的信息。  回复  更多评论
  

# re: 输出函数不应抛异常 2007-08-20 09:47 金庆
@flyman
异常的描述是给人看的,程序并不需要描述,程序更擅长对错误号进行处理,或者针对异常的类型进行处理。异常的描述仅对于显示错误信息有用,一般是退出前报个错误框,或日志。  回复  更多评论
  

# re: 输出函数不应抛异常[未登录] 2007-08-21 01:29 flyman
日志并不是对程序错误本身的描述,而异常恰是程序本身的错误,
日志是对程序逻辑或这说业务本身的描述和记录。
另外,程序在某一个关节出现异常,有时并不能判程序本身的死刑,
他还将继续执行,在这种情况下我们并不能返回错误码。
  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理