关于std::length_error异常
什么是std::length_error异常
长度错误。它报告由于试图超出某些对象的实现定义的长度限制而导致的错误。一般由std::basic_string和std::vector::reserve等成员函数抛出。
继承关系
异常结构填充
ExceptionAddress: 747cc5af (KERNELBASE!RaiseException+0x00000058)
ExceptionCode: e06d7363 (C++ EH exception)
ExceptionFlags: 00000001
NumberParameters: 3
Parameter[0]: 19930520
Parameter[1]: 0039a178//std::length_error对象指针
Parameter[2]: 66805744
0:000> dt std::length_error 0039a178
DIYHome!std::length_error
+0x000 __VFN_table : 0x667c147c
+0x004 _Mywhat : 0x154882d8 "vector<T> too long"
+0x008 _Mydofree
备注
这个异常既不是内存不够,也不是越界,而是要生成的容器size超过了容器最大值(max_size())而引发。当然引起超过最大值的原因就多种多样了。