首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我捕获C++/CLI中的异常时,为什么要获得CA1806?

当我捕获C++/CLI中的异常时,为什么要获得CA1806?
EN

Stack Overflow用户
提问于 2010-05-18 13:31:27
回答 2查看 826关注 0票数 0

我最近将我的项目从Visual 2008升级到了Visual 2010。

通过启用代码分析并在发行版中编译,我得到警告CA1806:不要忽略方法结果。

我设法将生成警告的代码减少到以下代码:

.h文件:

代码语言:javascript
复制
public ref class Foo
{
public:
    void Bar();
};

.cpp文件:

代码语言:javascript
复制
void Foo::Bar()
{
    try
    {
    }
    catch (const std::exception&) // here I get the warning
    {
    }
}

警告:

CA1806 : Microsoft.Usage:'Foo::Bar(void)‘调用'Global::__CxxRegisterExceptionObject(void*,void*)’,但不使用方法返回的HRESULT或错误代码。这可能导致在错误条件或低资源情况下的意外行为。在条件语句中使用结果,将结果赋值给变量,或将其作为参数传递给另一个方法。

如果我尝试使用异常值或执行catch(...),则会出现警告仍然。如果我捕获托管异常,或者在调试中编译,我就不会收到警告。

为什么我会收到这个警告?

更新

我决定开关于Microsoft的错误报告

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-29 08:23:22

这是一个2010错误。

正如您在错误报告中所看到的,微软复制了这个bug,并决定推迟解决方案,没有任何解决办法。

欢迎您投票支持这个错误,所以微软可能会决定尽快解决它。

票数 0
EN

Stack Overflow用户

发布于 2010-05-18 14:01:37

可能是因为你没有调用任何可以抛出的代码。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2857677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档