4
这是一个理论问题,以更好地理解例外如何工作。做一个类型安全扔在C++
为了确保我的班级安全可靠,我需要检查什么?当我从堆栈的角度抛出异常时究竟发生了什么?
例如,如果我在堆栈中创建一个对象,当我超出范围时它应该被销毁,但是当我抛出该对象时会发生什么?这样做是否安全,还是必须在堆上创建对象?
非常感谢!
这是一个理论问题,以更好地理解例外如何工作。做一个类型安全扔在C++
为了确保我的班级安全可靠,我需要检查什么?当我从堆栈的角度抛出异常时究竟发生了什么?
例如,如果我在堆栈中创建一个对象,当我超出范围时它应该被销毁,但是当我抛出该对象时会发生什么?这样做是否安全,还是必须在堆上创建对象?
非常感谢!
“异常对象被复制到一个特殊的位置来存活堆栈解除。”
How are exceptions allocated on the stack caught beyond their scope?
不,这不是一个很好的做法,在堆中创建例外,因为你将在catch块来管理它。标准是按价值抛售并通过参考获得。检查这些以获取更多信息: