Excepciones en c#

¿Cómo podría implementar una excepción en c#? ¿Podrías darme un ejemplo por favor?
¿En el caso de un array si es que intentamos acceder a un numero excedente a la longitud de un array con un FOR?
¿Y cómo se haría para incluir todo esto en otra clase?

1 Respuesta

Respuesta
1
Puedes simplemente enviar un New Exception("Mensaje"); con eso es suficiente, pero si deseas tener un mayor control y otras cosas más de la excepción, puedes crear una clase que herede de exception y manipularla completamente a tu antojo.
Una aclaración aquí por favor... lo que no entiendo es lo siguiente:
Tengo un método que recibe una matriz y un array, y compara el array con cada columna de la matriz; suponiendo que el array tenga una longitud de 5 y la matriz sea de 4x4... ¿esto iría de la siguiente forma? y ademas como haria para manipular la clase Exception? solo con override? ¿O creando nuevos métodos en la clase que hereda?
Metodo(int[,] matriz,int[] vector)
for (int i=0;i<4;i++)
{
     for (int e=0;e<vector.lenght;e++)
     {
        try
         {
             if(matriz[i,e]==vector[e])
             {
              contador++;
              }
        }
         catch(--------------)
        {
               -----------------------
        }
{
}
}
}
Debes controlar el tamaño y validar para que no de una excepción, l estructura catch la controlas con un Exception como lo planteas esta muy bien.
Bueno, gracias... dos ultimas preguntas y dejo de molestar:
El problema pide lo siguiente: definir una clase TestException, de manera que las únicas excepciones que se propaguen sean de este tipo.
Y yo pregunto: ¿En el caso de un FormatException como haría para que pertenezca a la clase TestException que yo he creado?
Y segundo problema: Como funciona un método con un argumento de tipo flujo (BufferedReader) en c#
Cuando captures la excepción la devuelves pero del tipo que quieres o sea testException y le pasas los parámetros que necesites a ese tipo de excepción.
El parámetro debe ser del tipo que vas a enviar en este caso del que mencionas, sino todos los flujos se pueden convertir a un array de bytes de manera sencilla
public int numero()
        {
            int numero;
            try
            {
                numero = int.Parse(Console.ReadLine());
                if (numero < 0)
                {
                    throw new TestException("No se acepta números negativos en esta instancia");
                }
            }
            catch (Exception)
            {
                throw (new TestException("Error");
            }
            catch (TestException)
            {
                numero = 10;
                Console.WriteLine("\tSe ha establecido por defecto el número 10");
            }
            return(numero);
 ?Eso no se puede hacer... cierto?cual es la forma correcta?
esta es mi clase testException
class TestException : ApplicationException
    {
        public TestException(string mensaje)
            : base(mensaje)
        { Console.WriteLine("Se ha producido un error");
        Console.WriteLine(mensaje);}
    }
¿Qué puedo hacer en ella? ¿Lo único que puedo hacer es hacer constructores?
Yo creo que lo que estas haciendo es lo que necesitas, peor no se si tienes algún error en algún punto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas