如何在程序出错后继续运行出错的代码后面的代码? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiBase/html/delphi_20061205174624280.html
比如说
第一行
第二行
第三行
......
第N行
如果在运行第二行的时候出错了,怎样让程序继续运行后面的代码?
谢谢!
第一行
Try
第二行
Except
End;
第三行
......
第N行
具體看看
Try ... Except ... End;
與
Try ... Finally ... End;
的說明文檔
我就是用了 try 和 except
但是之外的代码也可能产生异常。而我不想任何一句代码的异常而中断整个过程或是函数。
如果每行代码加 try 和 except 太麻烦了。
恐怕除了这种方式没有其他的方式了
但是实际工作的时候不可能每一步都会抛出异常把
不可能有这样的程序
to jieguo(天下有眼)
可是拿不准哪句会出现错误的。如果那个过程很有多代码。
跟踪 测试..
分块 try
可是拿不准哪句会出现错误的。如果那个过程很有多代码。
------------------------------------------------------
那你的程序设计就有大大的问题了.
vividw(vividw)
跟踪 测试..
分块 try
--------------------
sanmaotuo(老冯)
那你的程序设计就有大大的问题了.
---------------------
虽然尽量测试和避免错误的出现,可是难免有观察不到的地方嘛~~~
先放下这个问题不说。。。我说的问题能解决吗?
任何事情没有绝对的外部解决办法,从异常处理来说,try...try...except...finally是可以达到你的要求的,当然还可以加上具体异常的捕获处理(ON XXEXCEPTION).异常的应用应该是一个独立的事务有一个异常处理,但如果你在一个独立事务处理里面到处都是异常处理那就是你的程序设计上有问题了.
谢谢 sanmaotuo(老冯) 的回复。
这是 VB 中的一点说明:
On Error Resume Next 会使程序从紧随产生错误的语句之后的语句继续执行,或是从紧随最近一次调用含有 On Error Resume Next 语句的过程的语句继续运行。这个语句可以置运行时错误于不顾,使程序得以继续执行。可以将错误处理程序放置在错误发生的地方,而不必将控件传输到过程中的其它位置。在调用另一个过程时,On Error Resume Next 语句成为非活动的,所以,如果希望在例程中进行嵌入错误处理,则应在每一个调用的例程中执行 On Error Resume Next 语句。
注意 当处理在访问其它对象期间产生的错误时,与其使用 On Error GoTo 指令,不如使用 On Error Resume Next。每次和对象打交道,在不知道用代码访问哪个对象时,检查一下 Err 都会打消这种疑虑。可以确定是哪个对象产生错误(Err.Source 中指定的对象),也可以确定是哪个对象将错误代码放在 Err.Number 中。
--------------------------------------
现在我只要弄明白,Delphi中没有类似的语句就会结贴了。
当然 , Delphi 处理异常的功能比VB6强 ^_^
肯定有的啦~~ try except end 当try except之间发现错误的时候执行 except end 之间的代码
zuoansuifeng(静下心来好好研究)
如果 except end 之间的代码出错呢?再嵌套?
如果 except end 之间的代码出错呢?
try
except
try
finally
end;
end;
不好意思 打错了
try
try
finally
end;
except
end;
to zuoansuifeng
如果保护块内的一行代码出现问题,那么保护块内其他代码也就不能运行了
把程序分解一下,弄成一小块一小块的,出错就到那个出错的模块里找不就得了!!
dovelee()
有些情况很难预测吧………………
一般来讲,都是用
try
except
就可以了
但是要找到出错的语句,
还是跟踪,往上找咯