Hola de nuevo,revivo el post por la pregunta q voy ahcer viene a raiz de lo comentado aquí.
Al final hice lo q comentamos y cree yo el código de los botones, para llevar el control. me cree tmb una función para validar los campos q la llamo desde los métodos de los botones cuando es necesario. la funciona validarCampos() comprueba todos los campos y crea un string con los errores encontrados, y al final si el string no está vació lanza una excepción q me he creado.
Bien eso funciona correctamente excepto en un caso q funciona, pero cuando lueog capturo mi excepcion y muestro el mensaje de error esa linea me genera una excepción de NoNullAllowedException.
Os pongo le código de la funciona validarCampos() y el de la funcion donde me sata la otra excepcion:
Código:
private void validarCampos()
{
StringBuilder error = new StringBuilder();
if (dniTextBox.Text.Trim() == "")
error.AppendLine("El campo DNI no puede ser nulo");
if (cmbCategoria.Text == "")
error.AppendLine("El campo Categoría no puede ser nulo");
if (nombreTextBox.Text == "")
error.AppendLine("El campo Nombre no puede ser nulo");
if (apellidosTextBox.Text == "")
error.AppendLine("El campo Apellidos no puede ser nulo");
if (direccionTextBox.Text == "")
error.AppendLine("El campo Dirección no puede ser nulo");
if(cod_postalTextBox.Text == "")
error.AppendLine("El campo Código Postal no puede ser nulo");
if(poblacionTextBox.Text == "")
error.AppendLine("El campo Población no puede ser nulo");
if(cmbProvincia.Text == "")
error.AppendLine("El campo Provincia no puede ser nulo");
if(cmbFormaPago.Text == "")
error.AppendLine("El campo Forma de Pago no puede ser nulo");
if(error.ToString() != "")
throw new CamposInvalidosExcepcion(error.ToString());
}
private void lista_Click(object sender, EventArgs e)
{
try
{
validarCampos();
}
catch (CamposInvalidosExcepcion ups)
{
MessageBox.Show("Revise los siguientes errores: \n\n" + ups.Mensaje, "Campos incorrectos");
}
catch (Exception ups)
{
MessageBox.Show("Se produjo un error inesperado. ERROR:\n" + ups.Message, "Error");
}
}
La excepción me salta en esta línea "
MessageBox.Show("Revise los siguientes errores: \n\n" + ups.Mensaje, "Campos incorrectos");"
La solución q se me ha ocurrido en un primer momento es meterla linea del cath dentro deotro try -catch en el q controle la excepcion notnull. Pero.... es que no entiendo porqué salta, sobre todo porq e los otros casos q llamo a validar campos no salta. la excepción salta si alguno de los campos q no permiten nulos son nulos, pero porqué sólo en ese caso, y en los otros casos en los q tmb estan nulos no salta?? Y porque lanza esa excepcion la función Show de messageBox ?¿
Bueno a ver si alguien me puede echaruna mano, muchas gracias.
Un saludo!!