Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

gtest source code

$
0
0

gtest  里面有一段漂亮的宏定义代码

大意就是说如果定义了跑出异常,就要在执行的时候判断,试图捕获异常,并处理异常

如果没有定义就不用管了,  如下的红色代码所示,两段式一样的

# if GTEST_HAS_EXCEPTIONS

#  define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
  try { \
    GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \
  } catch (const ::std::exception& gtest_exception) { \
    fprintf(\
        stderr, \
        "\n%s: Caught std::exception-derived exception escaping the " \
        "death test statement. Exception message: %s\n", \
        ::testing::internal::FormatFileLocation(__FILE__, __LINE__).c_str(), \
        gtest_exception.what()); \
    fflush(stderr); \
    death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
  } catch (...) { \
    death_test->Abort(::testing::internal::DeathTest::TEST_THREW_EXCEPTION); \
  }


# else
#  define GTEST_EXECUTE_DEATH_TEST_STATEMENT_(statement, death_test) \
  GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement)

# endif


在程序的处理过程中,对于异常的处理很重要。最好能对已知的问题作出级别上的区分;例如上面的代码,是个很好的范例

作者:ShiningStarPxx 发表于2013-4-13 17:50:24 原文链接
阅读:19 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>