- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
谁能解释一下 range_error
、out_of_range
以及 overflow_error
和 underflow_error
之间的区别是什么,我什么时候应该使用它们?它们看起来都一样。
根据 cppreference.com :
out_of_range
:它报告由于尝试访问超出定义范围的元素而导致的错误。range_error
:它报告由于某些计算中的浮点值由于大小太大或太小而无法表示而产生的错误。如果该值具有整数类型,则应使用 std::underflow_error
或 std::overflow_error
。overflow_error
:它报告由于某些计算中的整数值由于正值太大而无法表示而出现的错误。具体来说,我有一个函数,
template<typename T>
void write_integer(const T &n) {
if(n < 0) { throw ??? }
if(some_limit < n) { throw ??? }
其中T
是整型;该函数对 n
进行一些边界检查,以查看它是否在某个范围内;如果不是,我想抛出一些异常。我很困惑,因为:
out_of_range
听起来像是用于索引和数组边界检查,我没有这样做。range_error
似乎是为了 float ? (但为什么要用 C++ 这样的语言呢?)underflow_error
和 overflow_error
?这些真的合适吗?最佳答案
来自标准:
range_error
:range_error 类定义了作为异常抛出的对象类型,以报告内部计算中的范围错误。
out_of_range
:out_of_range 类定义了作为异常抛出的对象类型,以报告参数值不在其预期范围内。
overflow_error
:overflow_error 类定义了作为异常抛出以报告算术溢出错误的对象类型。
underflow_error
:underflow_error 类定义了作为异常抛出的对象类型,以报告算术下溢错误。
对于您的函数,最合适的是 out_of_range
。
关于c++ - out_of_range、range_error 和 over/underflow_error 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22978863/
我有 C++ 代码将包含 🜆( ALCHEMICAL SYMBOL FOR AQUA REGIA ) 的 string 转换为 u16string: #include #include #inc
我正在编写一些需要使用系统语言环境在字节字符串和宽字符串之间进行转换的代码。从文件中读取时,这非常容易做到。我可以使用 std::wifstream , 用 std::locale("") 灌输它,
来自 Programming: principals and practices Chapter 4 Drill 1: 编写一个由 while 循环组成的程序(每次围绕loop) 读入两个 int 并
我已经搜索过 SO 和谷歌,我没有在两个地方声明相同的变量,也没有以我知道的奇怪方式包含一些东西。插入方法应该可以正常工作,它是一个预先编写的方法(我想这也可能是错误的..大声笑)。这是我得到的错误。
谁能解释一下 range_error、out_of_range 以及 overflow_error 和 underflow_error 之间的区别是什么,我什么时候应该使用它们?它们看起来都一样。 根
我正在使用 std::wstring_convert 将 wstring 转换为多字节字符串,如下所示: // convert from wide char to multibyte char
我是一名优秀的程序员,十分优秀!