我已经为所工作的公司编写了票务系统。我们已经在该软件上运行了一年多。我目前正在更新此软件,以包括新的维护申请表。我完全从头开始,并且对所有内容进行了更好的编程,以免再使用两次相同的代码。我已经有三千多行代码,并且遇到了一个问题。要再次使用代码,我将其放在子例程中或带有参数的函数中。在那些子功能块中,我使用try catch进行错误处理。问题是,我在应用程序的各处都使用了这些功能,例如闪屏。如果启动屏幕上出现某些错误,则第一个问题是,由于启动屏幕仅显示几秒钟,因此该消息将自动关闭。我遇到的第二个问题是,如果在启动屏幕关闭之前没有足够快地单击错误上的“确定”按钮,它将完全冻结应用程序。有更好的方法吗?
我曾考虑过创建一个公共变量来传递错误,但是我不确定这是否是最好的方法。我希望应用程序尽可能专业。我也考虑过要创建一个错误控制台,但是我不太确定该怎么做。我没有做太多尝试,因为我不知道一种更好的方法来处理这个特定问题。
Private Sub Splash_Screen_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
## Splash screen Code
## My added code:
Try
'Most of these functions also have a try catch block.
Public_Functions.GetApplicationSettings(Public_Functions.SQL_ApplicationSettingsTable)
Catch EX As Exception
Public_Functions.ShowErrorBox("Unable to load application settings!", EX.Message, MethodPath:=Public_Functions.GetMethodPath())
End Try
End Sub
如果软件有错误,我希望它显示错误并等待用户关闭启动屏幕上的框,或在启动屏幕关闭后在主窗体上显示错误。
实际的行为是当软件错误时,它将尝试显示多个错误窗口,并且初始屏幕将关闭,这将冻结应用程序。如果删除了我的启动画面加载事件,它将运行该应用程序,但我需要加载的所有内容均不可用。
答案 0 :(得分:0)
我实际上解决了我遇到的问题。我没有使用初始屏幕来加载某些东西,而是添加了一个中间人表单来加载所有内容。我试图找出如何使启动屏幕一直等到命令执行完毕,但除了更改最短显示时间外,我什么也找不到。我的应用仍然为每个子功能显示错误,但是我不确定如何解决。例如,如果某个用户不在他们需要进入AD的组中,则他们将多次收到一条消息,提示无法连接SQL。我有很多从SQL中提取的子项或函数,这些子项或函数以SQL connect语句开始。它将显示连接错误以及每个子功能的错误,但只要它们在组中,一切都很好。