可能重复:
从构造函数中抛出异常
初始化对象时-处理阻止对象以后履行其所有职责的问题的正确方法是什么。
例如,假设构造函数初始化一组用于远程连接的配置变量。并非所有配置变量都已正确设置,因此稍后,当该对象用于该连接时,它将根本无法工作并最终引发异常。
我可以想到几个解决方案
- 构造函数在那里抛出异常,然后
- 该对象提供了一种验证配置设置的方法(这意味着该对象的客户端具有在使用前检查有效状态的附加任务)
- 只需保持原样并抛出任何异常,让客户在它们出现时处理它们。
那么,在所提供的场景中,哪些选项将被认为是最佳方法,或者如果有更好的替代方法来处理这个问题,那将是什么。