例如,当我throw
在函数中使用时
try {
// ...
throw MyExceptionType()
// ...
} catch(MyExceptionType& exp){ /* ... */ }
MyExceptionType
分配在哪里?它在堆栈上吗?exp
如果是这样,在我的catch
块中修改是否安全?在堆栈中调用其他一些函数catch
并使用堆栈怎么样?
在类似的情况下,我有:
try {
char my_array[32];
throw my_array;
} catch(char* error_string){ /* ... */ }
是error_string
指向进程堆栈中的某个地方吗?如果我在catch
块内调用一些函数,我可以在数组上运行吗?