101 - Excepciones - clase padre Exception


El API de .Net define numerosas excepciones, algunas de las que vimos en conceptos anteriores son: FormatException, IndexOutOfRangeException, DivideByZeroException etc.

Todas estas clases tienen en común que heredan directamente o indirectamente de la clase Exception.

Veamos con un ejemplo las propiedades fundamentales de la clase Exception.

Problema:

Realizar la carga de un número entero por teclado e imprimir su cuadrado.

Programa:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PruebaExcepcion5
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.Write("Ingrese un valor:");
                string linea = Console.ReadLine();
                var num = int.Parse(linea);
                var cuadrado = num * num;
                Console.WriteLine($"El cuadrado de {num} es {cuadrado}");
            }
            catch (FormatException e)
            {
                Console.WriteLine($"Propiedad Message: {e.Message}\n");
                Console.WriteLine($"Propiedad StackTrade: {e.StackTrace}\n");
                Console.WriteLine($"Propiedad Source: {e.Source}\n");
                Console.WriteLine($"Propiedad TargetSize: {e.TargetSite}");
            }
            Console.ReadKey();
        }
    }
}

Si ejecutamos el programa e ingresamos una cadena no numérica podemos ver la información que nos suministra cada una de estas propiedades:

C# excepciones propiedades clase Exception

Propiedades

  • Message: Esta propiedad retorna la descripción de la excepción generada. Es una propiedad de solo lectura.

  • StackTrade: Esta propiedad también de solo lectura contiene una cadena que identifica la secuencia de llamadas que desencadenaron la excepción. Esta propiedad es útil durante la depuración, ya que disponemos del número de línea del método que genera la excepción y toda la pila de llamadas a métodos internos.

  • Source: Esta propiedad tiene el nombre del ensamblaje, o el objeto, que lanzó la excepción.

  • TargetSize: Nos retorna el método que disparó la excepción.


Retornar