擅长:python、mysql、java
<p>您可以在异常消息中使用<code>__FILE__</code>和<code>__LINE__</code>定义。在</p>
<p>例如:</p>
<pre><code>#include <stdexcept>
class Error : public std::runtime_error
{
public:
Error (const std::string &message)
: std::runtime_error(message)
{}
};
int value()
{
std::stringstream ss;
ss << "Issues at " << __FILE__ << " on line " << __LINE__;
throw Error(ss.str());
}
</code></pre>
<p>在本例中,我使<code>Error</code>继承自<code>std::runtime_error</code>(它有一个构造函数,允许您以字符串形式传递消息)。。。在</p>
<p>另外,看看这个SO问题:<a href="https://stackoverflow.com/questions/4366739/global-exception-handling-in-c">Global Exception Handling</a>-注意关于使用<code>set_terminate</code>函数的答案。这将允许您安装一个全局处理程序,以确保消息按您的需要打印。这里有一些关于<a href="http://www.cplusplus.com/reference/exception/set_terminate/" rel="nofollow noreferrer">set_terminate()</a>的信息。在</p>
<p>Python为未捕获的异常提供堆栈跟踪。我提供的答案只告诉您文件和行号。如果需要堆栈跟踪,一些评论家引用了一些其他问题,这些问题给C++中的建议提供了建议。不过,要小心这个问题的非标准解决方案。在</p>