大家有什么办法,可以让错误处理后,还可以再跳转错误?
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 , 基础类