gpt4 book ai didi

c++ - 异常(exception)。 Try-catch block

转载 作者:搜寻专家 更新时间:2023-10-31 00:42:32 25 4
gpt4 key购买 nike

我得到了以下代码:

set<Object*>::iterator it;
try
{
for (it = SetOfObjects->begin(); it != SetOfObjects->end(); ++it)
{
//some actions, not applicable to the question
}
}
catch(...)
{
this->m_error_raiser->error_Name = "Station isn`t connected to Object! Use connectToObject method or list of forecast objects is empty";
this->m_error_raiser->error_Number = 101;
//throw (this->m_error_raiser);
}

当未创建 SetOfObjects 的实例并且我试图遍历该集合时,我得到了预期的运行时错误。

所以我决定处理该错误并通过 try catch 向用户提供有关它的信息。

我的问题:虽然我捕获了所有异常,因此它们被认为已处理,但我的程序仍然在运行时终止,这与我期望它的行为相矛盾:它应该继续工作因为所有生成的异常都已处理。这里有什么问题?

最佳答案

如果对象是指针且未初始化,则此类对象的使用是未定义的行为。您不能通过 exception handling(按标准)处理此类指针的使用。默认仅初始化为 0,并在使用前验证指针不为 null

关于c++ - 异常(exception)。 Try-catch block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11950288/

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