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

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

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

谢谢大家参与讨论。
...全文
373 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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(愚翁),你说的情况我知道一些,请问:
在连接打开之前,如何判断是否可以打开,网络是否连接

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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