我正在处理Windows Forms
申请。在我有几个try-catch
块的构造函数中发生了很多事情。但是作为最终结果,我想在form_shown
事件上显示错误消息。我不确定这样做的正确方法是什么。我正在考虑从所有表单中查看字符串变量,然后在每个try-catch
块中设置不同的消息,通过在form_shown
事件中调用显示此字符串变量的值来显示我想这样做。
但这似乎不是很好的方法。我更喜欢的是一些方法来重新抛出异常或类似的东西并在form_shown
事件中处理它。我认为这更接近正确的错误处理方法。
答案 0 :(得分:1)
您违反了两个重要的guidelines:
在构造函数中执行最少的工作。除了捕获构造函数参数之外,构造函数不应该做很多工作。任何其他处理的成本应该延迟到需要。
和
如果合适,请从实例构造函数中抛出异常。 构造函数应该像任何方法一样抛出和处理异常。具体来说,构造函数不应该捕获并隐藏它无法处理的任何异常。
所以,回答你的问题,如果构造函数阶段出现任何问题:立即显示它。它应该意味着无法构造对象。
我不知道这些很多东西是在构造函数中发生的事情,但我很确定你应该将它推迟到以后的时刻,例如形式负荷。但仍然:显示它们发生的例外情况。