0

我真的很想去:(在 C++ 中)

assert( num > 0, "The number must be greater than zero!");

在 C# XNA 中,他们有一个方法可以做到这一点:

Debug.Assert( num > 0, "The number must be greater than zero!");

有没有办法做到这一点,以便运行时给我一个有意义的完整错误,而不仅仅是“断言失败”错误?

4

4 回答 4

7

您可以在大多数任何断言中使用它:

assert(("The number must be greater than zero!",  num > 0));
于 2009-03-03T17:28:24.187 回答
5

运行时通常会显示失败的表达式,因此您可以执行以下操作:

assert(num > 0 && "The number must be greater than zero!");

这不会影响逻辑,但断言失败消息将包含一个描述性字符串。

此外,这无需 STL 或 Boost 即可工作。

于 2009-03-03T17:25:21.683 回答
3

使用 assert( num > 0 && "该数字必须大于零!" );

于 2009-03-03T17:24:07.957 回答
0

使用 BOOST,您可以使用他们的断言,如http://www.boost.org/doc/libs/1_50_0/libs/utility/assert.html中所述:

#include <boost/assert.hpp>
/* ... */

BOOST_ASSERT_MSG( num > 0, "The number must be greater than zero!");

会完全按照要求做。

于 2012-08-12T11:21:26.933 回答