Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: abreu20011 en 22 Noviembre 2011, 08:20 am



Título: Controlar un IndexOutofRangeException de un Array
Publicado por: abreu20011 en 22 Noviembre 2011, 08:20 am
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:

Código:
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:

Código:
    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


Título: Re: Controlar un IndexOutofRangeException de un Array
Publicado por: abreu20011 en 23 Noviembre 2011, 03:42 am
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 :)

Código:
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 :)