![]() |
1
3
因此,可以将关键部分包装在try/catch中,至少这意味着类型不会初始化失败,但是如果初始化代码非常关键,那么这种行为实际上是好的——在这种未初始化的状态下,类型是不可用的。 另一种选择是作为一个单独的实例来完成,每次尝试获取实例时,都可以正确地创建类型,直到成功为止,即使它第一次失败了。 如果实例在第一次(或第二次等)返回空值,您仍然需要对调用方进行一些错误处理。 编辑:如果您不希望使用单例,那么只需让实例构造函数初始化静态部分即可。 例如
|
![]() |
2
4
这里的教训非常简单:不要在静态构造函数中做任何可能会合理失败的事情。 |
![]() |
3
1
我过去使用的解决方法是创建一个单例。如果并且仅当失败意味着整个应用程序无法运行时,使静态构造函数失败。 |