异常断线,导致程序崩溃,如何捕捉并控制

LighBlade 2006-09-06 11:01:59
1 问题描述:异常断线,比如网线被碰掉等等,再操作程序时,
如果涉及对数据库的操作,例如connection 的关闭,transaction的commit, rollback等等,
无法操作,因为已经断线,导致运行中程序崩溃,如何捕捉并控制

2 希望达到效果:捕捉并提示,等待网络重新连接,而不是系统崩掉

谢谢大家参与讨论。
...全文
274 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Knight94 2006-09-06
to 如何判断是否断线?其他的还应该注意什么?

DB的Connection有State属性,可以通过它来判断。

Socket有Connected属性来判断。

类似的类型都提供相应的状态。
回复
LighBlade 2006-09-06
To:cctaiyang(小刀可乐)
数据库: 1秒之间也可能连接断掉,time控件是否适合如题的情况?

To:juge001(宰相)
如何让它等待?清说清楚些

To;Knight94(愚翁)
如何判断是否断线?其他的还应该注意什么?

谢谢大家!
回复
myminimouse 2006-09-06
mark一下
回复
Knight94 2006-09-06
对于你所说的,在通过网络进行操作的时候首先要加上try-catch保护,防止出现异常而导致程序崩溃。

其次在使用之前,要先判断当前的connection状态,如果能用才能进行操作,否则进行等待。
回复
juge001 2006-09-06
同意楼上的说法.如果数据据里捕捉到断线的时候,那就进入等待状态,直到重新连上再进入事务重新开始并提交
回复
kbxj406 2006-09-06
Mark,值得探讨研究
回复
cctaiyang 2006-09-06
socket的话用recv函数
对数据库的操作的话可以设置一个timer控件,每过1秒从数据库取当前时间来判断
回复
LighBlade 2006-09-06
结了
回复
Knight94 2006-09-06
to 在连接打开之前,如何判断是否可以打开,网络是否连接

即使网络通了,也不一定能连通,所以一般在connection去connect或者open的时候加上try-catch保护就行了。
回复
LighBlade 2006-09-06
谢谢Knight94(愚翁),你说的情况我知道一些,请问:
在连接打开之前,如何判断是否可以打开,网络是否连接
回复
相关推荐
发帖
C#
创建于2007-09-28

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2006-09-06 11:01
社区公告

让您成为最强悍的C#开发者