Controlar un IndexOutofRangeException de un Array

Iniciado por abreu20011, 22 Noviembre 2011, 08:20 AM

0 Miembros y 1 Visitante están viendo este tema.

abreu20011

Saludos a todos :)

Os vengo con una duda un tanto complicada >.<

¿Hay alguna forma de poder controlar un IndexOutofRangeException de un Array?

El problema está en que tengo un función que llama a otra, donde esta ultima usa un Array con un Split siendo el indice de esta llamada por la primera.

La función que usa el Split:

Public Function ReadCommand(ByVal frase As String, ByVal nWord As Integer) As String
       Dim ArrayCommand() As String = Split(frase)
       Return ArrayCommand(nWord).ToString
   End Function

//Module: stx_mll


Y la función que llama esta primera:

   Public Sub cmd_clear()
       Try
           Select Case stx_mll.ReadCommand(txtRead, 1)
               Case "-all"
                   ClearScreenDelftonesScript()
               Case Else
                   cmd_error()
           End Select
       Catch
           ClearScreenDelftonesScript()
           StartDelftonesScript()
       End Try
   End Sub


Esta ultima función, como podéis ver, ya la controlo con un Try, pero me preguntaba si no habría alguna forma un poco más elegante que esta :)

Muchas gracias a todos,
un saludo

abreu20011

Solucionado :) Mira que era tonta la solución "elegante"

Usar Len sobre el Array para medir su tamaño, y hacer a partir de ahí un IfThen :)

If Not nWord > Len(ArrayCommand) Then
        Dim ArrayCommand() As String = Split(frase)
        Return ArrayCommand(nWord).ToString
Else
        Return "Out of range"
End If


Un saludo a todos :)