Я пытаюсь выполнить обработку ошибок, а также инициализировать новые классы. Я удивлен тем, как он настроен, и я надеюсь, что я просто пропустил что-то очень простое. Вот простой вариант того, что я пытаюсь выполнить:Как вы обрабатываете ошибки при вызове другого инициализатора класса?
Public Class TestClass
Public Sub New(ByVal sLink as String)
Try
Me.New(New Uri(sLink))
Catch ex As Exception
MessageBox.Show("Hey, initializing this class failed... Is the URL valid?")
End Try
End Sub
Public Sub New(ByVal uLink as Uri)
MessageBox.Show("Class Initialized Successfully!")
End Sub
End Class
выше, очевидно, не может, так как линия с «Me.New (...)» должна быть первой линией. Я мог бы сделать это, однако, что, если кто-то передает строку, которая не является допустимым Uri? Рассмотрим следующий пример:
' This would fail and I'd like to catch it somehow
Dim tmp as New TestClass("Hello World!")
' Something like this would pass successfully
Dim tmp as New TestClass("http://somevalidlink.com/")
' And so would this, too.
Dim tmp as New TestClass(New Uri("http://somevalidlink.com/")
Я искал и не могу найти что-нибудь ... Может быть, я просто не знаю, ключевые слова для поиска. Любые намеки в правильном направлении были бы большой помощью.
Спасибо!
Да, я думаю, что это, вероятно, путь. Я добавил функцию «TryParse», которая будет прекрасно работать. К сожалению, никто не может этого сделать ... Спасибо, Фабио! – Apachi