C语言能否避免插件段错误异常导致主程序退出??

WizardOz 2009-12-17 10:27:47
如题
本人工作时间不是很长,C语言已及操作系统方面的东西也不是很精通。
目前自己负责开发一个主界面程序,该程序以插件方式支持Widget的应用。
但是现在暴露出的一个问题就是,插件只是简单的以动态库的方式载入运行的,只要插件发生了严重错误,如 除零,内存越界等,就会导致整个主程序被强制结束。
不知道各位达人知不知道有什么办法可以对这一情况进行补救,如发生段错误只结束导致段错误的插件?

请大家帮帮忙!
有任何想法都可以发言,谢谢了!
...全文
190 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
学习一下……
SuperLy 2009-12-17
  • 打赏
  • 举报
回复
The try-except statement is a Microsoft extension to the C language that enables applications to gain control of a program when events that normally terminate execution occur. Such events are called exceptions, and the mechanism that deals with exceptions is called structured exception handling.

__try{

}
__except(){

}
C语言也有的。
guzhijie1981 2009-12-17
  • 打赏
  • 举报
回复
那应该考虑插件接口问题;乱说的;我不懂
WizardOz 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 akirya 的回复:]
应该找出你的代码中的错误。
[/Quote]
我问的是插件中有错误的情况啊,如果产品发布出去,用户安装什么样的插件,这个是我没法控制的。
WizardOz 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 superly 的回复:]
__try()
{
}
catch(...)
{
}
能不能捕获错误?
[/Quote]
我用的是C语言
fenglingxiaowu 2009-12-17
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
应该找出你的代码中的错误。
SuperLy 2009-12-17
  • 打赏
  • 举报
回复
__try()
{
}
catch(...)
{
}
能不能捕获错误?
WizardOz 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 do_fork 的回复:]
lz可以向google学习,把插件放在独立的进程里,插件崩溃也不会影响你的程序。
[/Quote]
插件做为单独的进程?这个还真没听说过哦
但是我目前的情况是时间比较紧,有些方法可能没很多时间去研究了。

算了这条路估计走不通了,结贴吧。
do_fork 2009-12-17
  • 打赏
  • 举报
回复
lz可以向google学习,把插件放在独立的进程里,插件崩溃也不会影响你的程序。
wuyu637 2009-12-17
  • 打赏
  • 举报
回复
还是努力找到错误的地方为好。c的错误处理的确比较烂。
do_fork 2009-12-17
  • 打赏
  • 举报
回复
有些系统,除零等异常行为会引起signal,处理signal就可以了
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wizardoz 的回复:]
引用 2 楼 akirya 的回复:
应该找出你的代码中的错误。

我问的是插件中有错误的情况啊,如果产品发布出去,用户安装什么样的插件,这个是我没法控制的。
[/Quote]
没办法啊,异常处理也有搞不定的事情。插件出错就应该找插件的问题。
一个软件出错了,你会找MS去说,你们平台上出问题了?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧