auto 发表于 2009-2-19 21:27:32

程序出错时出现Line=-1提示.退出

当程序出错时出现Line=-1提示后直接退出,
有些时候(如对数据库操作类型不对或调用其它OBJ时)就会出现这个情况
而且无法获取ERROR错误返回值
http://www.autoitx.com/attachment.php?aid=2640&k=43de312479caf3a4c63dd4c988f3f44b&t=1235049120&noupdate=yes

[ 本帖最后由 auto 于 2009-2-20 20:55 编辑 ]

xinlu8439 发表于 2009-2-19 21:55:02

为什么你们都不设置错误报告呢?
把下面这段代码加入到你的代码里。

Global $Err=ObjEvent("AutoIt.Error","ODBCJET_ErroHandler")

Func ODBCJET_ErroHandler()
    Local $err_msg
    $err_msg = "SQL Error - " & $Err.Number & @TAB & "SOURCE: " & $Err.Source & @TAB & "DESC: " & $Err.Description
    Msgbox(0, default, $err_msg)
    Local $err1 = $Err.number
    If $err1 = 0 Then $err1 = -1
    SetError($Err)
EndFunc ; ==> ODBCJET_ErroHandler()

[ 本帖最后由 xinlu8439 于 2009-2-19 21:56 编辑 ]

sxd 发表于 2009-2-19 22:07:26

嗯 帮助里有 但是很多人都没注意到

auto 发表于 2009-2-19 22:40:19

原来用这个函数....ObjEvent
--------------------------------------------------------------------------------

包含一个已经得到的Object(对象)的事件句柄.
翻译成中文是这样:face (13): . 平时没注意这个函数

OK THX

auto 发表于 2009-2-19 22:42:34

看来有点类似于定时检查AUTOIT创建的com的错误值,如果出错则调用容错子程序

auto 发表于 2009-2-19 22:46:40

AUTOIT3操作数据库,如果执行的SQL语句中有问题,如数据类型与数据库类型不一致也会出现这样的错误,又如何获取错误代码

xinlu8439 发表于 2009-2-19 23:46:01

原帖由 auto 于 2009-2-19 22:46 发表 http://www.autoitx.com/images/common/back.gif
AUTOIT3操作数据库,如果执行的SQL语句中有问题,如数据类型与数据库类型不一致也会出现这样的错误,又如何获取错误代码

上面我给的代码就可以获取SQL的语句错误,通常在SOURCE那里

auto 发表于 2009-2-20 20:54:58

试试看...ObjEvent 不只是捕获OBJ错误吗?还可能获取数据库操作的错误
貌似没有用OBJ....
有时候修改数据库结构或字段改变会引起这样的问题.
算是解决...THX

auto 发表于 2009-2-20 21:06:06

原来操作数据库自定义UDF函数里面也使用了OBJ..
OK

bdrdc 发表于 2009-11-12 21:38:00

这个个好,解决了大问题。
推荐。

wuyaqi 发表于 2013-10-19 21:12:30

回复 2# xinlu8439
很好,看到了.
页: [1]
查看完整版本: 程序出错时出现Line=-1提示.退出