当前位置: 技术问答>linux和unix
Linux平台上,应用程序怎么捕获异常
来源: 互联网 发布时间:2015-08-13
本文导语: 类似空指针这样的异常,在Windows下可以用_set_se_translator()将其转化成C++异常,抛出来。这个功能是非常有用的,例如大型的多线程程序,就可以在线程执行体函数里写一个try-catch,保证这个线程的任何异常都不会造成...
类似空指针这样的异常,在Windows下可以用_set_se_translator()将其转化成C++异常,抛出来。这个功能是非常有用的,例如大型的多线程程序,就可以在线程执行体函数里写一个try-catch,保证这个线程的任何异常都不会造成整个进程退出。
不知Linux下面有没有类似的手段?难道我只能无奈地等着发生不可预知的状况时看到core-dump ??
不知Linux下面有没有类似的手段?难道我只能无奈地等着发生不可预知的状况时看到core-dump ??
|
还是gdb跟踪一下core文件好了。
|
可以,捕捉SIGSEGV就可以了。 man signal.
问题是出现这种异常你的程序还能run吗?
问题是出现这种异常你的程序还能run吗?
|
使用C++和C的TRY CATCH就可以
http://search.csdn.net/Expert/topic/1034/1034968.xml?temp=.387005
http://search.csdn.net/Expert/topic/1034/1034968.xml?temp=.387005
|
core-dump 估计只能去 debug 一下了。
|
try和catch是C++语言保障的特性,虽然有点性能损失,但是这个和具体平台无关,Linux下面只要使用g++编译C++代码就可以使用这样的特性
|
linux也有try-catch
|
mark