delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
如何在程序出错后继续运行出错的代码后面的代码? Delphi / Windows SDK/API
http://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  
   
  就可以了  
    但是要找到出错的语句,  
    还是跟踪,往上找咯  
 

posted on 2009-04-22 10:44 delphi2007 阅读(278) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。