代码之家  ›  专栏  ›  技术社区  ›  user240141

处理错误的更好方法

  •  3
  • user240141  · 技术社区  · 16 年前

    我最近将一个vb6应用程序迁移到vb.net。整个VB6依赖项都被删除。代码运行良好,只针对一个模块,意思是说,就像winapp一样,它运行良好。

    现在我的要求已经改变了,同一个类将被多个应用程序访问,它可能是一个windows应用程序、web应用程序或web服务。所以我无法决定任何有效的错误处理模式。

    所以你们帮我。目前我正在做的是父函数,我将两个变量logerror作为bool传递,errorMessage作为string参数传递,这将进一步检查如下内容

    Catch(ex as Exception)
         If LogError then
              MessageBox.Show("My_Module_Name :" & ex.Message)
         EndIf
         ErrorMessage = ex.Message
    End Try
    

    同样的catch块也用于所有其他函数/子例程。 因此,我需要的是任何优雅的处理方法,它将在跨应用程序平台(win/web/service)上高效地工作。

    1 回复  |  直到 16 年前
        1
  •  4
  •   Hans Olsson    16 年前

    我建议将消息记录到日志文件或事件日志中,但为什么不让客户机选择,因为您可以添加一些方法,让客户机决定将消息记录到哪里。不过,与其让异常处理程序处理该消息并将其放入errorMessage变量中,不如在日志记录之后使用 throw 以便 Exception 继续在调用链中运行,直到某个知道如何处理它的代码得到它为止。

    一般来说,这不是一个好的做法 例外 ,您应该只捕获可以处理的异常。但我认为如果你只是想记录下来然后再扔出去就可以了。