2011-04-11 55 views
0

我正在设计一个跨平台应用程序保护库来与加密狗进行通信。加密狗能够发送和接收数据块,创建和删除加密狗内部文件系统内的目录和文件等。简单来说,主加密狗对象具有实现所有这些功能的方法。不幸的是,这些方法都可能失败。现在我正在考虑如果他们这样做,该怎么办:)错误表示和处理

最明显的解决方案是从所有这些方法返回布尔类型的结果,以指示他们是否失败或成功。但是,这会导致错误性质的细节丢失。

下一个可能的解决方案是返回一个错误代码,但会有超过30种类型的错误。此外,我将需要设计一个单独的函数来将所有这些返回代码转换为更具可读性的字符串表示形式。

第三溶液是返回一个布尔类型的结果,但为了保持的错误状态对象在主加密狗对象,以便将有可能使用GetLastError函数()等方法进行检索。我正在考虑使用这一个。

现在是我的问题。是否还有其他合理的错误表示和处理模式,以及您建议我在我的案例中使用什么?

感谢, 伊利亚

回答

0

您也可以尝试使用std ::例外。它可以让你说出错误是什么,以及它背后的性质。

+0

我真的以为我需要使用例外情况来处理非常特殊的情况? – ezpresso 2011-04-11 17:55:52

+0

@ezpresso:废话。如果您想使用例外,请使用例外。 – 2011-04-11 18:01:08