none
Control de excepciones en las llamadas a las bases de datos RRS feed

  • Pregunta

  • Buenos dias! Estoy creando por primera vez codigo para comunicar mi programa con la BBDD mediente Entity framework 6.2.0, y tengo una duda en la cuestion de manejo de errores: ¿Tengo que poner codigo trycatch en cada metodo de cada clase que se comunique con la misma por posibles excepciones, o lo ideal seria controlar con algun if anticipandose a las excepciones (y retornar 0 o null en caso de error)? porque no se si sea lo ideal y quiero dejar este codigo pulido, ya que se implementa de manera similar en cada clase que creé que interacciona con la BBDD

    Dejo el codigo que tengo:

            public List<Caja> LeerListado()
            {
                using (BDRestauranteEntities BBDD = new BDRestauranteEntities())
                {
                    return BBDD.Caja.Include("?????????").ToList();
                } 
            }
    
            public Caja LeerPorNumero(int _ID_CajaBuscar)
            {
                using (BDRestauranteEntities BBDD = new BDRestauranteEntities())
                {
                    return BBDD.Caja.SingleOrDefault(Identificador => Identificador.ID_Caja == _ID_CajaBuscar);
                } 
            }
    
            public int Crear(Caja _Caja)
            {
                using (BDRestauranteEntities BBDD = new BDRestauranteEntities())
                {
                    BBDD.Caja.Add(_Caja);
                    return BBDD.SaveChanges();
                }
            }
    
            public int Actualizar(Caja _Caja)
            {
                using (BDRestauranteEntities BBDD = new BDRestauranteEntities())
                {
                    Caja ObjetoActualizado = BBDD.Caja.SingleOrDefault(Identificador => Identificador.ID_Caja == _Caja.ID_Caja);
    
                    if (ObjetoActualizado != null)
                    {
                        ObjetoActualizado.ID_Caja = _Caja.ID_Caja;
                        //ObjetoActualizado.Nombre = cliente.Nombre;
                        //ObjetoActualizado.Direccion = cliente.Direccion;
                        //ObjetoActualizado.Id_Localidad = cliente.Id_Localidad;
                        return BBDD.SaveChanges();
                    }
                    else
                    {
                        return 0;
                    }
                }
            }
    
            public int Borrar(int _ID_CajaEliminar)
            {
                using (BDRestauranteEntities BBDD = new BDRestauranteEntities())
                {
                    Caja ObjetoAEliminar = BBDD.Caja.SingleOrDefault(Identificador => Identificador.ID_Caja == _ID_CajaEliminar);
    
                    if (ObjetoAEliminar != null)
                    {
                        BBDD.Caja.Remove(ObjetoAEliminar); // ver si es remove o delete object
                        return BBDD.SaveChanges();
                    }
                    else
                    {
                        return 0;
                    }
                }
            }


    tomasgavagnin


    • Editado Orion1998 martes, 27 de agosto de 2019 19:17
    martes, 27 de agosto de 2019 19:14

Todas las respuestas

  • hola

    >>¿Tengo que poner codigo trycatch en cada metodo de cada clase que se comunique con la misma por posibles excepciones,

    Si atrapas el problema vas hacer algo ? poner un try..catch a ese nivel sino vas hacer nada con el error no lo controles

    controlalo en un nivel superior, quizas en la capa de negocio o sino directo en la UI logueando el problema a un archivo y mostrando un error generico

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 27 de agosto de 2019 19:29