Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: ORTUS en 12 Junio 2013, 18:20 pm



Título: Problema con Excepciones en C#
Publicado por: ORTUS en 12 Junio 2013, 18:20 pm
Hola, soy nuevo en ésto de la programación y estoy haciendo un pequeño cursillo sobre conceptos básicos. El lenguaje que nos están enseñando es C#. Pues bien nos han mandado la tarea de crear un par de excepciones.En la primera tengo que lanzar un mensaje que diga "Tipo de Dato Incorrecto" cuando se introduzca un dato no válido, mientras que en la segunda se mostrará el mensaje "Sólo se admiten números positivos" si se intenta introducir un número negativo. Como vereis lo único que me queda es el código que va en los bloques try y la verdad es que ando un poco perdido. Gracias de antemano por la ayuda prestada y un saludo.

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BasePractica3
{
    class Producto
    {
        private string _nombre;
        private int _stock;
        private float _precio;

        public Producto()
        {
            _nombre = "SIN DETERMINAR";
            _precio = 0;
            _stock = 0;


            //Ésta sería la primera excepción//
            FormatException ex = new FormatException("Tipo de Dato Incorrecto");

            try
        {
            
        }
            catch(Exception Ex)
        {
            FormatException ex3= new FormatException("Tipo de Dato Incorrecto");
        }


            //Ésta sería la segunda excepción//
            FormatException fex = new FormatException("Sólo se admiten números positivos");
  
            try
            
        {
            
            
        }
            catch(Exception Ex)
        {
            FormatException fex2 = new FormatException("Sólo se admiten números positivos");
        }
        }

        public Producto(string in_nombre, int in_stock, float in_precio)
        {
            _nombre = in_nombre;
            _stock = in_stock;
            _precio = in_precio;


            FormatException ex = new FormatException("Tipo de Dato Incorrecto");

            try
        {
            
        }
            catch(Exception Ex)
        {
            FormatException ex3= new FormatException("Tipo de Dato Incorrecto");
        }

        }

        public Producto(Producto p)
        {
            _nombre = p._nombre;
            _stock = p._stock;
            _precio = p._precio;

        }


        public string nombre
        {
            get {
                return _nombre;
            }
            set
            {
                _nombre = value;
            }
        }

        public int stock
        {
            get
            {
                return _stock;
            }
            set
            {
                _stock = value;
            }
        }


        public float precio
        {
            get
            {
                return _precio;
            }
            set
            {
                _precio = value;
            }
        
          
        }
    }
}


Título: Re: Problema con Excepciones en C#
Publicado por: 43H4FH44H45H4CH49H56H45H en 13 Junio 2013, 05:29 am
Pos asi a la rapida, puedes hacer algo asi:

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.    class classExcepciones
  9.    {
  10.        public void SiEsNegativo( int iPositivo )
  11.        {
  12.            if (iPositivo < 0)
  13.                throw new ArgumentException("Sólo se admiten números positivos");
  14.         }
  15.        public void DatoIncorrecto(string sDato)
  16.        {
  17.            if (string.IsNullOrEmpty(sDato))
  18.                throw new ArgumentException("Dato no valido - cadena vacia");
  19.            sDato = sDato.ToUpper();
  20.            for (int i = 0; i < sDato.Length; i++)
  21.            {
  22.                char cTemp = Convert.ToChar(sDato[i]);
  23.                int iAscii = (int)cTemp;
  24.                if (iAscii < 65 || iAscii > 91)
  25.                {
  26.                    throw new ArgumentException("Dato no valido, solo se admiten letras de A-Z");
  27.                }
  28.            }
  29.        }
  30.    }
  31.    class Program
  32.    {
  33.        static void Main(string[] args)
  34.        {
  35.            classExcepciones cE = new classExcepciones();
  36.            try
  37.            {
  38.                cE.SiEsNegativo(1);
  39.            }
  40.            catch (Exception e)
  41.            {
  42.                Console.WriteLine(" " + e.Message);
  43.            }
  44.            try
  45.            {
  46.                cE.DatoIncorrecto("");
  47.            }
  48.            catch (Exception e)
  49.            {
  50.                Console.WriteLine(" " + e.Message);
  51.            }
  52.  
  53.            Console.ReadKey();
  54.        }
  55.    }
  56. }
  57.  

En el MSDN debe estar mejor explicado y de forma correcta.


Título: Re: Problema con Excepciones en C#
Publicado por: ORTUS en 13 Junio 2013, 16:43 pm
Muchas gracias por tu respuesta.