当前位置:编程学习 > VB >>

大家有什么办法,可以让错误处理后,还可以再跳转错误?

Sub RunSql(ByVal useName As String, ByVal password As String, ByVal sqlfilename As String)
On Error GoTo noSqlCmd
Shell "sqlcmd /U " & useName & " /P " & password & " /i " & sqlfilename
Exit Sub

noSqlCmd:
On Error GoTo noOsql
'这个跳转失败,大家有什么办法,可以让错误处理后,还可以再跳转错误?
Shell "osql /U " & useName & " /P " & password & " /i " & sqlfilename
Exit Sub

noOsql:
MsgBox "没有发现运行脚本的支持文件"

End Sub 必须用调用里加处理啦,直接加是不行地 Error.raise 递归, 不过要控制好, 否则会陷入死循环. 我的处理方式:
1、先写一个公用的错误处理方法
2、约写0值为没有出现错误,直接跳过
   其它错误则进行对应的提示,如1值为数据库连接错误,2值为数据库输入类型错误等。
3、具体的函数或者方法里,无论发生什么错误都顺序执行,最后一步,加个判断,如果无论不为0值,都GOTO ERR。ERR里再调用错误处理方法。

首先,要考虑你那些字符串命令能否正确执行,输入了用户名和密码后,登录是否成功?登录不成功又如何处理?还有sqlfilename文件是否存在?要从这些方面来考虑。
其次,考虑shell的问题,shell调用可执行文件成功后,会返回一个进程PID,否则返回0。

Sub RunSql(ByVal useName As String, ByVal password As String, ByVal sqlfilename As String)
On Error GoTo noSqlCmd:
Shell "sqlcmd /U " & useName & " /P " & password & " /i " & sqlfilename
noSqlCmd:
Exit Sub
On Error GoTo noOsql:
'这个跳转失败,大家有什么办法,可以让错误处理后,还可以再跳转错误?
Shell "osql /U " & useName & " /P " & password & " /i " & sqlfilename
noOsql:
MsgBox "没有发现运行脚本的支持文件"
Exit Sub
End Sub 

觉得这样才对吧!~
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,