我有一个向量的向量来建立一个整数的映射,我很乐意通过执行以下操作来捕获向量超出范围错误,无论何时抛出它:
vector< vector<int> > agrid(sizeX, vector<int>(sizeY));
try {
agrid[-1][-1] = 5; //throws an out-of-range
}
catch (const std::out_of_range& e) {
cout << "Out of Range error.";
}
Run Code Online (Sandbox Code Playgroud)
但是,我的代码似乎根本没有捕获错误.它似乎仍然想运行std :: terminate.有谁知道这有什么意义吗?
有人能解释什么之间的差异range_error,out_of_range以及一对,overflow_error和underflow_error是,当我使用的呢?他们似乎都是一样的.
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 ??? }
Run Code Online (Sandbox Code Playgroud)
哪里T是整体类型; 该函数进行一些边界检查n,看它是否在一定范围内; 如果不是,我想抛出一些例外.我很困惑,因为:
out_of_range 听起来像索引和数组边界检查,我没有做.range_error似乎是花车?(但为什么,用C++这样的语言?)underflow_error和overflow_error?这些真的合适吗?这是我的功能:
void loadfromfile(string fn, vector<string>& file){
int x = 0;
ifstream text(fn.c_str());
while(text.good()){
getline(text, file.at(x));
x++;
}
//cout << fn << endl;
}
Run Code Online (Sandbox Code Playgroud)
我传入的fn的值只是文本文件的名称('10a.txt')我传入的文件的值声明如下:
vector<string> file1;
Run Code Online (Sandbox Code Playgroud)
我没有定义尺寸的原因是因为我不认为我必须使用矢量,它们是动态的......不是吗?
该函数应该读取给定的文本文件并将每行的全部内容存储到单个向量单元格中.
防爆.将第一行的内容存储到file.at(0)将第二行的内容存储到file.at(1)依此类推,直到文本文件中没有任何行.
错误:
在抛出'std :: out_of_range'的实例后调用终止what():vector :: _ M_range_check
我认为在while循环中检查应该可以防止这个错误!
在此先感谢您的帮助.
我有以下内容:
string outOfRange = "2147483648"; // +1 over int.MaxValue
Run Code Online (Sandbox Code Playgroud)
显然,如果你有一个数字以外的东西,这将失败:
var defaultValue = 0;
int.TryParse(outOfRange, out defaultValue);
Run Code Online (Sandbox Code Playgroud)
我的问题是,因为这是一个数字,并且它会失败,你int.TryParse()怎么知道它失败了,因为字符串超出了它存储在容器的范围内?
我正在为我的CMS使用嵌套集,但是从MySQL 5.5起我无法移动节点.
抛出以下错误:
重新排序文档时出错:MySQL-DB出错:SQL无效:
SELECT baum2.id AS id,
COUNT(*) AS level
FROM elisabeth_tree AS baum1,
elisabeth_tree AS baum2
WHERE baum2.lft BETWEEN baum1.lft AND baum1.rgt
GROUP BY baum2.lft
ORDER BY ABS(baum2.id - 6);
Run Code Online (Sandbox Code Playgroud)
错误:BIGINT UNSIGNED值超出范围在'( ..lektoren - 6)'
的错误编号:1690baum2id
有没有人解决过这个问题?我已经尝试过铸造一些零件但是没有成功.
当我尝试删除Magento中的产品时,我得到了下一个错误,我不知道问题出在哪里.
SQLSTATE [22003]:数值超出范围:1690 BIGINT UNSIGNED值超出范围
product magento outofrangeexception mysql-error-1064 sql-delete
我遇到了这个错误 指定的参数超出了有效值的范围。参数名称:名称
当我几乎只是复制这里的示例时https://code.google.com/p/fast-member/
错误发生在 bcp.WriteToServer(reader) 上,一直在寻找其他信息,但我仍然不知道是什么导致了问题,并且示例非常简单...而且我什至不知道名为name的参数来自哪里。
我的实际代码如下
using (var bcp = new SqlBulkCopy(configvalue1))
using (var reader = ObjectReader.Create(DataToLoad, new string[]{"id","field1","field2","field3"}))
{
bcp.DestinationTableName = string.Format(DestinationTableFormat, DestinationDb, DestinationSchema, DestinationTable);
bcp.BatchSize = BatchSize ?? 10000;
bcp.WriteToServer(reader);
bcp.Close();
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
提前致谢
我有这个代码,它给了我错误 terminating with uncaught exception of type std::out_of_range: stoi: out of range
我已经确定这是由线路引起的 long ascii = std::stoi(temp_string);
我正在使用的stoi方式导致了什么,我该如何解决?
std::string encode(std::string message){
std::string num_value;
long cipher;
if(message.length() < 20){
for(int i = 0; i < message.length(); ++i){
int temp = (char) message.at(i);
num_value += std::to_string(temp);
}
return num_value;
}
else{
int count = 0;
std::string temp_string;
for(int i = 0; i < message.length(); ++i){
int temp = (int) message.at(i);
temp_string += std::to_string(temp);
count++;
if(count == 20){
count = 0; …Run Code Online (Sandbox Code Playgroud) std::vector几乎所有其他容器都有一种非常方便的边界检查方法:at(). std::span显然没有那个。
at()?我正在阅读OfficeOpenXml.ExcelWorksheet并在Collection的中间获取ArgumentOufOfRangeException.
我是这样读的process.Information = sheet.Cells[line, i++].Text;.在这条线i = 22,而sheet.Dimension.Column = 28.

当我正在调试和枚举集合时,我发现.Text当.Value方法显示正确的值时,抛出异常.
根据异常堆栈跟踪,System.Text.StringBuilder.Insert()方法抛出异常
----编辑----在接受答案后我意识到问题不仅仅在于阅读.我使用额外的列(导入成功或不成功)回复相同的文件,当我正在进行表格格式化时,我再次得到相同的错误,所有这些都归因于System.Text.StringBuilder.Insert()方法.我正在尝试自动调整列sheet.Column(22).AutoFit()
这是堆栈跟踪
at System.Text.StringBuilder.Insert(Int32 index, Char* value, Int32 valueCount)
at System.Text.StringBuilder.Insert(Int32 index, Char value)
at OfficeOpenXml.Style.XmlAccess.ExcelNumberFormatXml.ExcelFormatTranslator.ToNetFormat(String ExcelFormat, Boolean forColWidth)
at OfficeOpenXml.Style.XmlAccess.ExcelNumberFormatXml.ExcelFormatTranslator..ctor(String format, Int32 numFmtID)
at OfficeOpenXml.Style.XmlAccess.ExcelNumberFormatXml.get_FormatTranslator()
at OfficeOpenXml.ExcelRangeBase.GetFormattedText(Boolean forWidthCalc)
at OfficeOpenXml.ExcelRangeBase.get_TextForWidth()
at OfficeOpenXml.ExcelRangeBase.AutoFitColumns(Double MinimumWidth, Double MaximumWidth)
at OfficeOpenXml.ExcelRangeBase.AutoFitColumns(Double MinimumWidth)
at OfficeOpenXml.ExcelRangeBase.AutoFitColumns()
at OfficeOpenXml.ExcelColumn.AutoFit()
at SkiptraceAPI.Models.ProcessosRepository.formatExcel(ExcelPackage package, Boolean addValidation) in
Run Code Online (Sandbox Code Playgroud) c++ ×5
c# ×2
exception ×2
vector ×2
c++20 ×1
excel ×1
fastmember ×1
int ×1
magento ×1
mysql ×1
nested-sets ×1
product ×1
sql-delete ×1
sqlbulkcopy ×1
std-span ×1
tryparse ×1
wpf ×1