linux多线程异常处理,Linux下C 异常处理技巧-实例讲解(2)

Linux下C 异常处理技巧-实例讲解(2)

2008-02-23 05:41:41来源:互联网 阅读 ()

c4468b3f4df77e96b0a416fa2a870fba.png

abort();

// else if this is a thread used to service requests

// pthread_exit();

}

};

public:

ExceptionHandler()

{

static SingleTonHandler s_objHandler;

}

};

//

class A

{

public:

A()

{

//int i = 0, j = 1/i;

*(int *)0 = 0;

}

};

// Before defining any global variable, we define a dummy instance

// of ExceptionHandler object to make sure that

// ExceptionHandler::SingleTonHandler::SingleTonHandler() is invoked

ExceptionHandler g_objExceptionHandler;

A g_a;

//

int main(int argc, char* argv[])

{

return 0;

}

处理多线程程式中的异常

有时一些异常没有被捕获,这将造成进程异常中止。但是很多时候,进程包含多个线程,其中少数线程执行核心应用程式逻辑,同时,其余线程为外部请求提供服务。假如服务线程因编程错误而没有处理某个异常,则会造成整个应用程式崩溃。这一点可能是不受人们欢迎的,因为他会通过向应用程式传送不合法的请求而助长拒绝服务攻击。为了避免这一点,未捕获处理程式能够决定是请求异常中止调用,还是请求线程退出调用。清单 3 中 ExceptionHandler::SingleTonHandler::Handler() 函数的末尾处展示了该处理程式。

结束语

我简单地讨论了少许 C 编程设计模式,以便更好地执行以下任务:

在抛出异常的时候追踪异常的来源。

将信号从内核程式转换成 C 异常。

捕获构造和/或析构全局变量期间抛出的异常。

多线程进程中的异常处理。

我希望您能采用这些技巧中的一些来研发无忧代码。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值