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


C++ exception::getContext方法代码示例

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


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

示例1: sendResponseException

    void RcfSession::sendResponseException(
        const std::exception &e)
    {
        clearParameters();

        const SerializationException *pSE =
            dynamic_cast<const SerializationException *>(&e);

        const RemoteException *pRE =
            dynamic_cast<const RemoteException *>(&e);

        const Exception *pE =
            dynamic_cast<const Exception *>(&e);

        if (pSE)
        {
            RCF_LOG_1()(typeid(*pSE))(*pSE) << "Returning RCF::SerializationException to client.";
            encodeRemoteException(
                mOut,
                RemoteException(
                    Error( pSE->getError() ),
                    pSE->what(),
                    pSE->getContext(),
                    typeid(*pSE).name()));
        }
        else if (pRE)
        {
            RCF_LOG_1()(typeid(*pRE))(*pRE) << "Returning RCF::RemoteException to client.";
            try
            {
                encodeRemoteException(mOut, *pRE);
            }
            catch(const RCF::Exception &e)
            {
                encodeRemoteException(
                    mOut,
                    RemoteException(
                        _RcfError_Serialization(typeid(*pRE).name(), typeid(e).name(), e.getError().getErrorString()),
                        e.getWhat(),
                        e.getContext(),
                        typeid(e).name()));
            }
            catch(const std::exception &e)
            {
                encodeRemoteException(
                    mOut,
                    RemoteException(
                        _RcfError_Serialization(typeid(*pRE).name(), typeid(e).name(), e.what()),
                        e.what(),
                        "",
                        typeid(e).name()));
            }
        }
        else if (pE)
        {
            RCF_LOG_1()(typeid(*pE))(*pE) << "Returning RCF::Exception to client.";
            encodeRemoteException(
                mOut,
                RemoteException(
                    Error( pE->getError() ),
                    pE->getSubSystemError(),
                    pE->getSubSystem(),
                    pE->what(),
                    pE->getContext(),
                    typeid(*pE).name()));
        }
        else
        {
            RCF_LOG_1()(typeid(e))(e) << "Returning std::exception to client.";
            encodeRemoteException(
                mOut,
                RemoteException(
                    _RcfError_AppException(typeid(e).name(), e.what()),
                    e.what(),
                    "",
                    typeid(e).name()));
        }

        sendSessionResponse();

        RCF_LOG_2() << "RcfServer - end remote call. " << mCurrentCallDesc;
    }
开发者ID:MorelM35,项目名称:ESIR_MorKaneGame,代码行数:82,代码来源:RcfServer.cpp


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