当我们打开单据输入界面时,会自动获取单号,那么当无法连接数据库时,就会出错。如何处理这个错误呢?
dim cn as ...
省略
strcn= "PROVIDER=SQLOLEDB;Database=zghas;Data Source=***,1433;Uid=sa ;Pwd=il0vehua;"
cn.Open(strcn)
这里如何写错误处理。使得无法连接时,能继续其他程序。
------解决思路----------------------
出现异常时,你的程序的“最外层”的界面处理程序应该捕获它。例如在一个 WPF 桌面程序的启动 APP 文件中就会写
Class Application
' 应用程序级事件(例如 Startup、Exit 和 DispatcherUnhandledException)
' 可以在此文件中进行处理。
Private Sub Application_DispatcherUnhandledException(sender As Object, e As System.Windows.Threading.DispatcherUnhandledExceptionEventArgs)
MessageBox.Show(e.ToString, "操作异常", MessageBoxButton.OK)
End Sub
End Class
其它的程序平台也是类似,就是在“最外层”应用程序层统一捕获异常,然后给用户一个提示,这就行了。
你可以判断 Exception 的类型,对于一些类型的e,你可以给出你自己的重新格式化的信息,而不是e.ToString。
------解决思路----------------------
“当我们打开单据输入界面时”,这是一个事件驱动的机制。
用户的行为触发了这个事件,这个事件执行中遇到了异常,这个异常一直“向外层抛出”以直到达你的最外层UI机制捕获它,然后你的 MessageBox.Show 之类的代码执行完毕之后,一切就结束了。
你的程序,又回到系统等待用户去触发下一个(不知道是什么类型的)事件的“什么也不干”的状态了。