我最近离开学校,做我的第一份程序员工作。当我们的应用程序超时计时器关闭应用程序时,我们有一个用户报告的错误。我很确定我已经缩小了范围,但是很好奇为什么最初的程序员会这样做,如果这是良好的编码实践,如果是这样,我很好奇是否有人有办法处理这个问题。我们收到关闭后系统错误,因为它发生在主窗体关闭后,所以我们没有收到任何异常日志输入。
timeoutTimer_tick 处理程序的关闭功能执行以下操作:
For iCount As Int16 = Application.OpenForms.Count - 1 To 0 Step -1
Try
Application.OpenForms(iCount).Close()
Catch
End Try
Next
Try
Application.Exit()
Catch ex As Exception
End Try
该程序使用应用程序属性设置为在主窗体关闭时关闭(不是所有打开的窗体都关闭)。这让我想知道为什么我们要遍历每个表单并单独关闭它们,然后调用 Application.Exit()
我很确定我们的错误是因为 Application.Exit 在所有打开的表单都关闭后调用。它看不到主窗体,因为它在循环期间关闭,并引发错误。我觉得我们应该使用其中一个,但不能同时使用两者。
有什么意见或建议吗?哪个更好,或者更好(或者这个代码应该没有错误地工作,我完全错了)。
谢谢