#vb.net
#vb.net
Вопрос:
Мне нужно добавить функцию, которая позволит использовать динамическую позицию и динамический разделитель со ссылкой на случаи, когда введенная позиция отличается от существующих выражений. У меня есть эта функция:
Sub Main()
GetInsideStringByIndex("a.b.c",".",1)
End sub
Function GetInsideStringByIndex(text As String, delimiter As String, index As Integer) As String
Dim result as [String]() = text.split(delimiter)
Return result(index)
End function
Я не знаю, как обращаться с исключением. Это действие может выдать ошибку.
Спасибо!
Комментарии:
1. Вообще не обрабатывайте исключение — оставьте его для вызывающего метода, который использует неправильные аргументы. Возможно, вы можете проверить, существует ли индекс в результате, и, если нет, повторно настроить
Nothing
2. Вы должны проверить
String.IsNullOrEmpty(text)
(изменить это имя, например,inputString
), затем значениеindex
value по отношению кresult.Length
:return If (index >= result.Length, nothing, result(index)
. Остальное обрабатывается вызывающим.3. Самое большее, что вы должны делать в функции, — это базовые проверки достоверности, например, выбрасывать
ArgumentNullException
, еслиtext
ordelimiter
равно null, и, вероятно, также выбрасыватьArgumentException
, если любой из строковых аргументов пуст илиindex
отрицателен. При этом вы можете сделатьindex
UInteger
так, чтобы оно не могло быть отрицательным.