Ir ao conteúdo

Posts recomendados

Postado

Pessoal Boa Noite,

 

Estou com um problema e não consigo achar uma solução. Abaixo o código:

private void btEnviar_Click(object sender, EventArgs e)
        {
  			try
            {               
                resp = this.interfoneTableAdapter.Conferir(txtRamal.Text).ToString();
                if (!String.IsNullOrEmpty(resp))
                {
                    MessageBox.Show("Este interfone já foi reportado por " + resp, "Aviso");
                }
                else
                {
                    ...                
                } 
            }
  			catch
            {
              
            }

Quando a busca encontra algo, o código não da erro, mas quando é o retorno é null, não entra no else vai direto para o catch e dá o erro System.NullReferenceException:  'Referência de objeto não definida para uma instância de um objeto.'

Espero que alguém possa me ajudar. 

Desde já agradeço

 

Postado

"Quando a busca encontra algo, o código não da erro, mas quando é o retorno é null"

Ora, se o retorno do metodo "Conferir(txtRamal.Text)" for null, é natural que der erro "System.NullReferenceException" quando você chama o método toString.

você pode tratar esse caso no catch e mostrar uma messagem do tipo "Ramal Inexistente".

Ou com if

private void btEnviar_Click(object sender, EventArgs e)
        {
  			try
            {               
                resp = this.interfoneTableAdapter.Conferir(txtRamal.Text).ToString();
                if (!String.IsNullOrEmpty(resp))
                {
                    MessageBox.Show("Este interfone já foi reportado por " + resp, "Aviso");
                }
                else
                {
                    ...                
                } 
            }
  			catch (System.NullReferenceException ex)
            {
              MessageBox.Show("Este interfone não existe", "Erro");
            }

 

 

Postado
Em 17/04/2019 às 10:08, Flávio Pedroza disse:

"Quando a busca encontra algo, o código não da erro, mas quando é o retorno é null"

Ora, se o retorno do metodo "Conferir(txtRamal.Text)" for null, é natural que der erro "System.NullReferenceException" quando você chama o método toString.

você pode tratar esse caso no catch e mostrar uma messagem do tipo "Ramal Inexistente".

Ou com if


private void btEnviar_Click(object sender, EventArgs e)
        {
  			try
            {               
                resp = this.interfoneTableAdapter.Conferir(txtRamal.Text).ToString();
                if (!String.IsNullOrEmpty(resp))
                {
                    MessageBox.Show("Este interfone já foi reportado por " + resp, "Aviso");
                }
                else
                {
                    ...                
                } 
            }
  			catch (System.NullReferenceException ex)
            {
              MessageBox.Show("Este interfone não existe", "Erro");
            }

 

 

Acho que não expliquei direito, quando ele retorna null é sinal que o interfone não foi reportado, ai no else ele reporta o interfone com defeito, só que por causa do erro ele vai para o catch sem reportar o interfone... 

Postado
this.interfoneTableAdapter.Conferir(txtRamal.Text).ToString()

Não o string, objeto é que null

se this.interfoneTableAdapter.Conferir(txtRamal.Text) == NULL, e você chamar .ToString() vai gerar um exceção e a execução do programa vai pular para o catch.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!