怎样扑捉死循环的异常?

bryht 2009-10-21 02:10:06

while (true)
{

}
这样的死循环怎么Try catch 到?
...全文
415 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
rabbitlzx 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 ztmdsbt 的回复:]
引用 22 楼 liming7758521521 的回复:
计算类里输入异常数据时可能出现死循环,想扑捉这种死循环

try catch能扑捉到分母为0的状况


这个就是你设计的问题了,
首先必须对于输入数据要做验证.
死循环无法捕捉,你思路有问题.不要想着去捕捉死循环,而是怎么避免死循环.
[/Quote]
同意这个,通过对输入的数据进行判断,让有效的数据才进入循环
ztmdsbt 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 liming7758521521 的回复:]
计算类里输入异常数据时可能出现死循环,想扑捉这种死循环

try catch能扑捉到分母为0的状况
[/Quote]

这个就是你设计的问题了,
首先必须对于输入数据要做验证.
死循环无法捕捉,你思路有问题.不要想着去捕捉死循环,而是怎么避免死循环.
應燁軍 2009-10-22
  • 打赏
  • 举报
回复

从逻辑的角度讲,
你所提出的问题是行不通的!
既然你选择了C#编程,那么就应该有这样的逻辑思维!
try catch 语句是用来捕获异常,并做出相应的处理, 那么,
死循环会报什么异常呢?
你能定论什么样的循环是死循环吗?
既然你没有定论,那么就无法实现这个问题!!

逻辑永远是做事的标尺。
在编程的路上,最忌讳的就是做弯路!!!

---转cc_lcl
bryht 2009-10-22
  • 打赏
  • 举报
回复
计算类里输入异常数据时可能出现死循环,想扑捉这种死循环

try catch能扑捉到分母为0的状况
spmzfz 2009-10-22
  • 打赏
  • 举报
回复

try
{
while (true)
{
//if... then break();
}
}
catch (Exception )
{

throw;
}

chuzhaowei 2009-10-22
  • 打赏
  • 举报
回复
int count = 5;
while(true)
{
//你的代码
if(没有达到你预期的结果)
{
System.Threading.Thread.Sleep(2000);
count++;
}
else { break; }
if(count == 5) break;
}
listenyang 2009-10-22
  • 打赏
  • 举报
回复
用timer做个watch dog啊.
liuzhican 2009-10-22
  • 打赏
  • 举报
回复
死循环是逻辑上的漏洞,不是异常和错误,而try catch是捕捉异常的,它是捕捉不到逻辑上的漏洞。仔细看看你的代码!
柳晛 2009-10-22
  • 打赏
  • 举报
回复
很难将程序写成死循环吧,除非是故意的。
死循环不是异常。
sniper0221 2009-10-22
  • 打赏
  • 举报
回复
循环体中设置一个可行的跳出语句,不要想着出现死循环了以后才找方法,而是在没出现时预防他
sniper0221 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 leeada2007 的回复:]
增加时间验证 和循环计数器试试
[/Quote]

不太合适,时间长短不好规定,计数器的次数也不好规定,万一某一个循环要执行10001次,而你规定的是10000次,那不就惨了
Neil198 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 liming7758521521 的回复:]
计算类里输入异常数据时可能出现死循环,想扑捉这种死循环

try catch能扑捉到分母为0的状况
[/Quote]
。。你不会把Try catch写到循环里面?


while (true)
{
try
{
throw new Exception();
}
catch (Exception ex)
{
break;
//throw ex;
}
}
lerit 2009-10-21
  • 打赏
  • 举报
回复
try/catch不是异常,无法捕获
yyz985 2009-10-21
  • 打赏
  • 举报
回复
while(true){} 编译器会在下面的代码报警:检测到无法访问的代码
没有break语句的循环体都会报警
Error_Code 2009-10-21
  • 打赏
  • 举报
回复
栈溢出
maple0112 2009-10-21
  • 打赏
  • 举报
回复
while(true)不是造成机子垮掉的原因,至少也是这个循环里面的代码造成的,就看你的循环里面代码在干嘛了!
liaoyukun111 2009-10-21
  • 打赏
  • 举报
回复
机子本身会跨掉,在跨掉之间是找到异常的
Neil198 2009-10-21
  • 打赏
  • 举报
回复
楼主捕捉这样死循环的动机是什么??

tys101582 2009-10-21
  • 打赏
  • 举报
回复
同意所有观点!
bryht 2009-10-21
  • 打赏
  • 举报
回复
增加时间验证 和循环计数器试试

除了这个,没有更好的方法吗?
加载更多回复(12)

110,539

社区成员

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

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

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