假设你要设计一个封装socket通讯机制的dll给别人用,你会怎么设计在通讯过程中出现的通讯错误,也就是socket通讯错误,是暴露给外界,让使用此dll的人去处理,还是包装错误,只告诉外界通讯出错。说出你的看法,大家讨论一下,我自己觉得应该让应用的人获得错误,但我的同事则说不应该将底层的错误信息暴露出来,希望大家都谈谈自己的看法

解决方案 »

  1.   

    在你的DLL可能会产生两种类型的错误,一个是跟底层的socket有关,一个是跟你所要定制的通讯机制有关,比方说通讯格式等等。
    你可以提供两种方式的错误提示:
    一是返回值形式的,如果是socket错误,直接返回;如果是机制错误,返回自定的错误代码
    二是详细提示信息形式的,可以提供一个类是GetCommErrorInfo(int nErrorCode, CString &strErrorInfo)形式的错误查询函数,也可以提供一个回调函数,当错误发生时直接触发回调函数,当然DLL的使用者要保证回调函数的稳定性。