我有一个自定义的类,带有构造函数,该类的设置使得它在某些条件下合法地无法启动。我怎么没有返回?在VB.NET中,如何告诉我的构造函数当前对象init失败
1
A
回答
6
你不能从构造函数返回任何东西,它在那里进行初始化。
有一对夫妇的事情可以做,根据不同的情况:
如果初始化failiure是一个特殊的情况下,抛出一个异常,并使用
Try
块捕获它:Public Sub New() '... fail to initialize Throw New ApplicationException("Some problem") 'Or whatever type of exception is appropriate End Sub
如果失败了很多,你不能过滤输入什么的,使构造
Private
并在Shared
方法构造:Public Shared Function CreateMyObject() If someFailure Then Return Nothing End If Return New MyObject() 'Or something End Function
0
它有点老派,但你可以有一个设置一个异常处理的LastException属性:
Public Class Foo
Private _LastException As Exception = Nothing
Public ReadOnly Property LastException As Exception
Get
Return _LastException
End Get
End Property
Public Sub New()
Try
'init
Catch ex As Exception
_LastException = ex
End Try
End Sub
End Class
这需要你的类创建后检查LastException,但它是一种选择?
用法:
Dim foo1 As New Foo
If Not foo1.LastException Is Nothing Then
'some error occurred
Else
'carry on
End If
相关问题
- 1. 在对象的构造函数中使用的属性失败
- 2. 构造函数如何失败以销毁完成的对象?
- 3. 在JavaScript构造函数中失败
- 4. Python的析构函数失败构造
- 5. AngularJS构造函数或init?
- 6. 告诉scipy.optimize.minimize失败
- 7. 如何告诉Ninject不要注入我的构造函数参数之一?
- 8. VB.NET构造函数
- 9. 如何在另一个构造函数中调用对象构造函数?
- 10. Satis构建告诉认证失败
- 11. 当我忘记在GWT Serializable对象中创建默认构造函数时,如何获取Eclipse以警告我?
- 12. 如何从构造函数中返回构造函数的对象
- 13. 参考当前对象的构造
- 14. PHP自()与当前对象的构造
- 15. 如何重用对象构造函数?
- 16. jquery对象实际上只是init构造函数'enhanced'
- 17. 我该如何告诉Scala使用正确的Java构造函数?
- 18. 构建其他对象构造函数的对象构造函数
- 19. 如何生成基于对象当前值创建构造函数的代码?
- 20. 构造函数中的对象参数
- 21. 我知道构造函数的参数之前如何初始化类对象?
- 22. 当在js模块中定义对象构造函数时,从C调用JS对象构造函数
- 23. 在构造函数中使用对象
- 24. 在构造函数中传递对象
- 25. 在构造函数中创建对象
- 26. 如果构造函数存在,如何使JUnit测试失败?
- 27. 结构构造函数或init
- 28. 构造函数对象
- 29. 函数对象和构造
- 30. 带构造函数参数的模拟构造函数对象...对象
我会扔去的办法。谢谢。 – Bill