gpt4 book ai didi

c++ - 在 C++ 中捕获段错误

转载 作者:IT老高 更新时间:2023-10-28 21:35:10 65 4
gpt4 key购买 nike

try-catch block 是否会捕获段错误错误?

我正在使用下面给出的函数读取文本文件,但有时文件为空并且程序崩溃。我希望程序继续运行并在此文件为空或正在使用时提供另一个文件。

Path2D read_gesture(const char* filename)
{
Path2D path;
//MultiStrokeGesture MultiStrokes;

vector<string> text_file;

int no_of_paths=0;
std::ifstream ifs(filename);

for (std::string line; std::getline(ifs, line); )
{
no_of_paths=no_of_paths+1;
double a, b;
stringstream ss(line);
if (!(ss >> a >> b)) {cout<<"wrong format"<<endl;}
std::cout << "You said, " << a << ", " << b << ".\n";
path.push_back(Point2D(a,b));

}
cout<<"saving gesture"<<endl;
return path;


}

我尝试了类似的方法:

Path2D path;
try
{
path=read_gesture("test.txt");
}
catch(int e)
{
path=read_gesture("test2.txt");
}

但程序仍然崩溃。可能是什么问题?

  • 稍微修正一下,catch中调用的文件与try中调用的文件不一样,是错别字。

最佳答案

C++ try-catch block 只处理 C++ 异常。段错误之类的错误是较低级别的,try-catch 会忽略这些事件,其行为与没有 try-catch block 相同。

关于c++ - 在 C++ 中捕获段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12978234/

65 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com