Saltar al contenido

Excepciones comúnmente encontradas – Argumento de la excepción de rango

Mientras que el ArgumentOutOfRangeException es ampliamente utilizado por las clases en los espacios de nombres System.Collections y System.IO, la clase Array, y los métodos de manipulación de cadenas en la clase String, también podemos utilizarlo para lanzar excepciones en nuestro código para señalar que el valor de un argumento está fuera del rango esperado. Veamos un ejemplo de cómo podemos usarlo. Crear un nuevo proyecto de aplicación de la consola y actualizar Program.cs con el código que se muestra a continuación.

1234567891011121314151617181920212223242526272829303132333435363738394041namespace MyApp{usando el Sistema;classProgram{estaticvoidMain(string[] args){intento{ Consola. WriteLine("Introducir nombre de cuenta");var name = Console.ReadLine(); Console.WriteLine("Introducir saldo inicial");var balance = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Cuenta de apertura para {0}...
", nombre);var cuenta =newAccount(nombre, saldo); Console.WriteLine("Cuenta abierta para {0}", nombre.cuenta);}catch(ArgumentOutOfRangeException ex){ Console.WriteLine("¡Oh no! Algo salió mal"); Console. WriteLine(ex);}}classAccount{publicAccount(nombre de la cadena, int balance){si(balance <1200)lanzamos un ArgumentoOutOutOfRangeException(nombre de(balance), balance, "El balance de la cuenta no puede ser menor de 1200"); Nombre = nombre; Balance = balance;}publictring Name {get;privateset;}publicint Balance {get;privateset;}}}

csharp

Excepciones comúnmente encontradas – Argumento de la excepción de rango
Excepciones comúnmente encontradas – Argumento de la excepción de rango

En el código anterior, tenemos una clase de cuenta con propiedades Nombre y Balance, y un constructor que acepta el nombre y el balance como parámetros. Cuando este constructor con saldo inferior a 1200, lanzará una excepción ArgumentOutOfRangeException con el nombre del parámetro que causó la excepción, el valor del argumento y el mensaje que explica la causa del error. En el método static Main recogemos el nombre y el balance del usuario, y luego creamos un objeto Account con esa información.

Si ejecutamos la aplicación e introducimos un valor inferior a 1200 para el saldo, obtendremos una excepción. La siguiente información es la que obtenemos cuando ejecutamos el código con 900 como saldo.

123456789101112Ingresar nombre de cuentaFilipinasIngresar saldo inicial900Abrir cuenta para Filadelfia... ¡Oh no! Algo salió malSistema.ArgumentoFuera de RangoExcepción: El saldo de la cuenta no puede ser inferior a 1200Nombre del parámetro: balanceEl valor real era 900. en MyApp.Program.Account..ctor(String name, Int32 balance) en /dotnet/MyApp/Program.cs:line 34 en MyApp.Program.Main(String[] args) en /dotnet/MyApp/Program.cs:line 18