2010-04-14 20 views
2

我在我的.NET应用程序中使用P/Invoke方法。由于函数是C++函数,每一个都有返回类型,如int,intptr或任何结构。返回类型足以告诉我函数是否成功。在这种情况下,我是否还需要捕获泛型或COM异常?我们是否真的需要捕捉P/Invoke方法的异常?

回答

1

C++函数可能会产生异常。

Windows API可以生成异常,无论它们是直接从P/Invoke还是从C++函数中调用。

您的用户可以从Windows中查看异常消息(错误消息)还是希望程序向他们显示消息?

+0

我想显示我的消息。 – Ram 2010-04-14 07:35:44

+0

然后你需要捕捉异常。 – 2010-04-14 08:53:58

+0

一般异常???或任何特定的? – Ram 2010-04-14 12:49:28

2

如果未找到Dll,或者不包含所需功能,则PInvoke调用仍可能失败。

2

在我看来,你应该总是在调用外部组件时使用try/catch。你永远不知道可以返回什么。准备出乎意料的:)