【发布时间】:2011-03-09 03:46:16
【问题描述】:
如果我想在捕获到包罗万象的异常时将有用的信息写入文件,该怎么做?
try
{
//call dll from other company
}
catch(...)
{
//how to write info to file here???????
}
【问题讨论】:
-
您希望从异常中得到什么信息?如果抛出的对象是
int怎么办?当您catch(...)时,您不知道捕获的异常会有 一条消息。 -
这个问题给了我一个奇怪的想法(它不会起作用,但如果它起作用会很有趣):template
catch(const T& ex) {...}我认为它不可能起作用,因为异常更像是一种运行时机制......或者可以吗?抛出异常和分支到正确的 catch 块所涉及的堆栈展开机制对我来说似乎很神奇。也许要分支到的正确 catch 块仍然在编译时确定,这可以解释为什么跨模块边界抛出是如此不安全的原因之一。
标签: c++ visual-c++ exception-handling