gpt4 book ai didi

c++: 捕获 runtime_error

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:09 25 4
gpt4 key购买 nike

我正在家里学习 C++,我正在使用 rapidxml 库。我正在使用它提供的实用程序来打开文件:

rapidxml::file<char> myfile (&filechars[0]);

我注意到如果 filechars 错误,rapidxml::file 会抛出一个 runtime_error:

// Open stream
basic_ifstream<Ch> stream(filename, ios::binary);
if (!stream)
throw runtime_error(string("cannot open file ") + filename);
stream.unsetf(ios::skipws);

我想我需要写这样的东西:

try
{
rapidxml::file<char> GpxFile (pcharfilename);
}
catch ???
{
???
}

我进行了一些谷歌搜索,但没有在 ??? 的位置找到我需要的内容。

有人能帮帮我吗?谢谢!

最佳答案

您需要在catch 语句旁边添加一个异常声明。抛出的类型是 std::runtime_error .

try
{
rapidxml::file<char> GpxFile (pcharfilename);
}
catch (const runtime_error& error)
{
// your error handling code here
}

如果您需要捕获多个不同类型的异常,那么您可以使用多个 catch 语句:

try
{
rapidxml::file<char> GpxFile (pcharfilename);
}
catch (const runtime_error& error)
{
// your error handling code here
}
catch (const std::out_of_range& another_error)
{
// different error handling code
}
catch (...)
{
// if an exception is thrown that is neither a runtime_error nor
// an out_of_range, then this block will execute
}

关于c++: 捕获 runtime_error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491877/

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