Si dovrebbe scrivere un'eccezione IndexOutOfRange personalizzata?

1

Nel processo di scrittura di una raccolta speciale ho utilizzato il IndexOutOfRangeException già esistente come ad es. una lista o matrice verrebbe generata se dovessi accedere a un indice illegale. L'analisi del codice mi dice, tuttavia, che questa eccezione non dovrebbe mai essere generata dal codice utente, e non riesco a capire perché. Se dovessi distribuire riferimenti a questa classe astratti da un'interfaccia, per esempio, non sarebbe molto meglio se confermasse solo la (percepita) norma del lancio del noto e amato IndexOutOfRangeException rispetto a una% co_de personalizzata %? Qual è la motivazione dietro questa regola?

    
posta Janis F 03.11.2014 - 15:35
fonte

1 risposta

5

IndexOutOfRangeException e NullReferenceException dovrebbero essere lanciati dal runtime.

Se il metodo, che include un indicizzatore, convalida i suoi parametri, dovrebbe invece lanciare ArgumentOutOfRangeException e ArgumentNullException .

Le raccolte incorporate, come List<T> fai questo :

Exceptions:

ArgumentOutOfRangeException -- index is less than 0. -or- index is equal to or greater than Count.

    
risposta data 03.11.2014 - 15:38
fonte

Leggi altre domande sui tag