当前位置: 首页>>代码示例>>C++>>正文


C++ Exception::stackTrace方法代码示例

本文整理汇总了C++中Exception::stackTrace方法的典型用法代码示例。如果您正苦于以下问题:C++ Exception::stackTrace方法的具体用法?C++ Exception::stackTrace怎么用?C++ Exception::stackTrace使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Exception的用法示例。


在下文中一共展示了Exception::stackTrace方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: fallbackErrorPage

void RequestError::fallbackErrorPage(Request* request,
                                     const Exception& e,
                                     const String& e2Name)
{
    if (!request->headersSent())
    {
        request->setStatus(500);
        request->sendHeaders();
    }
    request->stream() << "<h1>“" << e.type().htmlEscape() << "” exception</h1>"
                      << "<p>" << e.htmlMessage() << "</p>"
                      << "<p><strong>Additionally, a “" << e2Name
                      << "” exception was encountered while handling the "
                      << "exception.</strong></p>"
                      << "<h2>Stack trace</h2><ol start=\"0\">";
    List<StackTrace::Frame> stack = e.stackTrace()->stackFrames();
    for (const StackTrace::Frame& frame : stack)
    {
        request->stream() << "<li><strong><code>" << frame.function.htmlEscape()
                          << "</code></strong> (<code>0x"
                          << String::fromNumber(frame.address, 16)
                          << "</code>)<br />"
                          << "<small>in <code>" << frame.object.relativePath()
                          << "</code>, file <code>" << frame.fileName
                          << "</code>, line " << frame.line << "</small></li>";
    }
    request->stream() << "</ol>";
}
开发者ID:dreamsxin,项目名称:WebCpp,代码行数:28,代码来源:RequestError.cpp

示例2: loadStackTrace

void RequestError::loadStackTrace(Exception& e, Template* tpl)
{
    List<Variant> entries;
    List<StackTrace::Frame> stack = e.stackTrace()->stackFrames();
    for (const StackTrace::Frame& frame : stack)
    {
        Map<String, Variant> entry;
        entry["address"] = frame.address;
        entry["functionName"] = frame.function;
        entry["object"] = frame.object.relativePath();
        entry["fileName"] = frame.fileName;
        entry["line"] = frame.line;
        entries.append(entry);
    }
    tpl->set("stackTrace", entries);
}
开发者ID:dreamsxin,项目名称:WebCpp,代码行数:16,代码来源:RequestError.cpp


注:本文中的Exception::stackTrace方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。