我听说,在C++图书馆提供例外情形可能非常危险,特别是对于DLs而言,特别是如果与不同的汇编者一起汇编电话码和图书馆的话。 是否有这方面的真相? 只要我坚持固定的图书馆,这是否安全? 请注意,我只谈论图书馆内的例外情形的内部使用问题,我想把它们深入到打电话的法典中:
仅澄清: Say I got a 汇编成文的静态图书馆,其中界定了Foo类:
class Foo
{
public:
// Constructor
Foo()
{
/* ... Do stuff ... */
if (stuffwentwrong)
throw(123); // We throw an integer error code (to make it simple)
}
};
有些人则这样说:
try
{
Foo foo_object;
}
catch (int i)
{
std::cout << "Oh bum. Code: " << i;
}
这是否安全?