赛迪网 > IT技术 C/C++ > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

Linux下C++程序的异常处理技巧 (1)

发布时间:2006.02.23 06:48     来源:51CTO    作者:unknown

处理 C++ 中的异常会在语言级别上遇到少许隐含限制,但在某些情况下,您可以绕过它们。学习各种利用异常的方法,您就可以生产更可靠的应用程序。

保留异常来源信息

在 C++中,无论何时在处理程序内捕获一个异常,关于该异常来源的信息都是不为人知的。异常的具体来源可以提供许多更好地处理该异常的重要信息,或者提供一些可以附加到错误日志的信息,以便以后进行分析。

为了解决这一问题,可以在抛出异常语句期间,在异常对象的构造函数中生成一个堆栈跟踪。ExceptionTracer 是示范这种行为的一个类。

清单 1. 在异常对象构造函数中生成一个堆栈跟踪

// Sample Program:

// Compiler: gcc 3.2.3 20030502

// Linux: Red Hat

#include 

#include 

#include 

#include 

using namespace std;

//////////////////////////// 
/////////////////

class ExceptionTracer

{

 public:

ExceptionTracer()

{

 void * array[25];

 int nSize = backtrace(array, 25);

char ** symbols = backtrace_symbols(array, nSize);

 

 for (int i = 0; i < nSize; i++)

 {

cout << symbols[i] << endl;

 }

free(symbols);

 }

};

1 2 3 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 澄清 Java 的接口与继承机制 (01-04) · 如何在C/C++中调用Java (02-17)
· 微软下一代VS.NET开发包现形 (11-19) · Oracle欲将全部业务转到Linux (11-14)
· Borland推出移动版C++开发工具 (11-14) · 深入剖析WTL—WTL框架窗口分析 (11-11)
· 在可管理C++中封装值类型 (09-26) · 编程技巧20法 (09-20)
· 编程技巧20法之九:转换并保存位图 (09-20) · 编程技巧20法之八:将窗体复制到剪切板 (09-20)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管