3

是否有必要检查所有Win32 APIs返回值?例如,像AdjustWindowRect,SetWindowLong等函数GetWindowLong真的会失败(有内部错误),或者返回值主要是一种不输入错误参数的故障安全机制?

4

1 回答 1

2

与 POSIX 不同,Win32 API 似乎没有为每个调用提供一个很好的错误条件列表。尽管某些函数在实践中不会失败(除了参数错误的情况),但它们在理论上可能会失败。就像您不应该相信用户输入一样,您也不应该盲目相信文档记录不佳的库。

我认为处理 API 的最佳方法是将所有调用包装在函数中以进行错误检查(在 API 之间和内部存在很大差异),这样您就有了一种“更高级别”的 API,其中所有特性都被熨平出去。然后,您可以将成功、错误和警告转换为适合您的语言的任何技术(例如异常、错误/警告回调、总和类型)。

于 2013-01-23T17:33:03.027 回答