我有一個自定義的類,帶有構造函數,該類的設置使得它在某些條件下合法地無法啓動。我怎麼沒有返回?在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