野百合也有春天

导航

< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

统计

使用BOOST异常

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// BoostEx.cpp : 定义控制台应用程序的入口点。
//
 
#include "stdafx.h"
 
#include <boost/exception/all.hpp>
#include <boost/exception/get_error_info.hpp>
#include <boost/current_function.hpp>
#include <string>
#include <iostream>
using namespace std;
using namespace boost;
 
struct my_execption :
    virtual std::exception,
    virtual boost::exception
{
};
 
typedef boost::error_info<struct tag_err_no, int> err_no;
typedef boost::error_info<struct tag_err_str, wstring> err_str;
 
 
#define MY_THROW(exepction_str) throw my_execption()<<err_str(exepction_str)\
                                      <<errinfo_api_function(__FILE__)\
                                      <<errinfo_errno(__LINE__);
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale("chs"));
 
    //cout<<BOOST_CURRENT_FUNCTION<<endl;
 
    try
    {
        MY_THROW(_T("异常!"))
    }
    catch(boost::exception& e)
    {
        wcout<<_T("异常:")<<*get_error_info<err_str>(e)<<endl;
        cout<<"文件:"<<*get_error_info<errinfo_api_function>(e)<<endl;
        cout<<"行号:"<<*get_error_info<errinfo_errno>(e)<<endl;
    }
 
    return 0;
}

posted on   flydream  阅读(849)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
阅读排行:
· DeepSeek V3 两周使用总结
· 回顾我的软件开发经历(1)
· C#使用yield关键字提升迭代性能与效率
· 低成本高可用方案!Linux系统下SQL Server数据库镜像配置全流程详解
· 4. 使用sql查询excel内容
点击右上角即可分享
微信分享提示