none
Try Catch x Using RRS feed

  • Pergunta

  • Pessoal,

    Verifiquei alguns artigos que comparam a utilizacao entre try catch e using.
    o que é melhor fazer ?

    Uso o try catch com dispose ou uso o try catch  ?

    []s
    Gabriel
    sexta-feira, 28 de agosto de 2009 13:06

Respostas

  • Gabriel,

    a utilização dos dois é para fins diferentes.
    O Try Catch é para TRATAMENTO DE EXCEÇÃO.
    Exemplo:

    try
    dim I as integer = 0
    I = "teste"
    Catch
    i = 0
    end try

    Você vai executar procedimentos em um determinado bloco, mas caso ocorra algum problema (as vezes problemas previstos) voce precisa trata-lo de maneira diferente. Então voce usa o try catch. utilizar um Dispose no Finally é apenas uma maneira de garantir que o GC vá executar seu trabalho de forma mais eficiente.

    Mas isso não quer dizer que o Using pode ser usado assim. O using você vai utilizar para garantir que o objeto vai se auto-disposar (existe isso? :))
    você pode inclusive, combinar os dois:
    using (OdbcConnection conexaobanco= new OdbcConnection(connectionString))
    {
           try
           {
                  meuadapter.SelectCommand.Connection = conexaobanco;
                   
                  OdbcCommandBuilder builder = new OdbcCommandBuilder( meuadapter);
    
                  conexaobanco.Open();
                  dadapter.Update(dset, "tabela");
             }
             catch ( Exception ex )
             {
                      //  trata exceções aqui
                     debug.writeline("Não foi possível criar conexão")
             }
             finally
             {
                     connection.Close();
             }
       }      //  ao sair do bloco o using vai dar  um dispose automático  

    Se você quer tratar exceções use o trycatch. Se não usa o using.
    :)
    ou combina os dois (ou no finally da um dispose manual)

    fica a seu critério
    sexta-feira, 28 de agosto de 2009 13:21