2

可能重复:
从构造函数中抛出异常

初始化对象时-处理阻止对象以后履行其所有职责的问题的正确方法是什么。

例如,假设构造函数初始化一组用于远程连接的配置变量。并非所有配置变量都已正确设置,因此稍后,当该对象用于该连接时,它将根本无法工作并最终引发异常。

我可以想到几个解决方案

  1. 构造函数在那里抛出异常,然后
  2. 该对象提供了一种验证配置设置的方法(这意味着该对象的客户端具有在使用前检查有效状态的附加任务)
  3. 只需保持原样并抛出任何异常,让客户在它们出现时处理它们。

那么,在所提供的场景中,哪些选项将被认为是最佳方法,或者如果有更好的替代方法来处理这个问题,那将是什么。

4

1 回答 1

1

肯定抛出异常。它抽象了你的处理。

它允许您以任何您想要的方式处理它,包括(但不限于):

  • 设置一个变量来确定您的对象中启用了哪些功能,哪些没有。
  • 在所述对象上调用方法。
  • 向用户显示错误
  • 调用某种错误日志记录

如果不处理,异常会杀死脚本,为您提供详细的调试回溯,了解出错的地方。

于 2012-05-19T21:14:44.443 回答