Value treatment null c#

Asked

Viewed 2,106 times

1

I have a method that generates me an execption, how to treat this?: I thank you

 public string CarregaProdutosDermaClube(string codigoproduto)
{
    //consulta os dados
    var tbuscar = new BuscaProdutosDermaClubeDAL();
    var retorno = tbuscar.ProdutoDermaClube(codigoproduto);

    if (string.IsNullOrEmpty(retorno.idproduto))
    {
        return "0";
    }
    else
    {
        return "1";
    }
}

inserir a descrição da imagem aqui

  • 4

    if (!string.IsNullOrEmpty(retorno))
return retorno.idproduto; else return 0; would not be pleasant?

  • Is this code generating Exception? Or do you want it to generate if it is Null? On Else it should not return the contents of var retorno? The question is very confusing.

  • You need to check that the return is null first. You could do something like this: return?. idProduct

  • generating Exception

  • Using the VS 2015

  • @ if (!string.Isnullorempty(return)) I will test

  • It didn’t work, if (!string.Isnullorempty(return)) the only one that worked was if (return != null) {}

Show 2 more comments

4 answers

1

Using if ternary

 public string CarregaProdutosDermaClube(string codigoproduto)
        {
            //consulta os dados
            return string.IsNullOrEmpty(new BuscaProdutosDermaClubeDAL().
                                 ProdutoDermaClube(codigoproduto)?.idproduto)? "0" : "1";
        }
  • 1

    Just like I would.

0

Normally a block should be used Try/catch when information is exchanged between applications, in your case, between your software and the database. It is also good practice to use a log framework to record exceptions generated in your system.

Another point is the return of your method, as it returns "0" or "1" nothing better than using the type bool (true/false) indicating whether or not the product has been successfully loaded.

 public bool CarregaProdutosDermaClube(string codigoproduto)
        {
            try
            {
                //consulta os dados
                var tbuscar = new BuscaProdutosDermaClubeDAL();
                var retorno = tbuscar.ProdutoDermaClube(codigoproduto);
                return retorno != null ? true : false;

            }
            catch (Exception ex)
            {
                // você pode logar a exceção capturada em "ex"
                return false;
            }
        }

0

If you are using Visual Studio from version 2015:

public string CarregaProdutosDermaClube(string codigoproduto)
{
    //consulta os dados
    var tbuscar = new BuscaProdutosDermaClubeDAL();
    var retorno = tbuscar.ProdutoDermaClube(codigoproduto);

    if (string.IsNullOrEmpty(retorno?.idproduto))
    {
        return "0";
    }
    else
    {
        return "1";
    }
}

In previous versions:

public string CarregaProdutosDermaClube(string codigoproduto)
{
    //consulta os dados
    var tbuscar = new BuscaProdutosDermaClubeDAL();
    var retorno = tbuscar.ProdutoDermaClube(codigoproduto);

    if (retorno == null || string.IsNullOrEmpty(retorno.idproduto))
    {
        return "0";
    }
    else
    {
        return "1";
    }
}
  • This is about the language version, not Visual Studio.

  • In fact, it is true, but it is easier to explain this than to make the person identify the version of C# that is installed in the visual studio.

0

Evaluating the code may be error in the case of the variable "return" = null.

An example to treat this situation is to use ? before ".". Example:

string idProduct = Convert.Tostring(return?. idProduct);

To read the code I also suggest using the ternary, as already explained in the comments. Example:

Isnullorempty(idProduct) ? " 0" : "1";

Browser other questions tagged

You are not signed in. Login or sign up in order to post.