none
Técnica Tratamento de exceções RRS feed

  • Pergunta

  • Bom dia.

    Eu implemento em todos os métodos que persistem dados tratamento de exceções especificas para facilitar o controle dos erros. Basicamente os tipos de exceções tratadas são os mesmos, então eu tenho o mesmo trecho de código repetido em cada um dos métodos, que são muitos dentro do projeto. Alguém poderia me orientar se existe uma forma desse trecho de código que trata as exceções ser "centralizado"? 

    meu tratamento está assim após o fechamento do Try:

     catch (DbEntityValidationException ex)
                {

                    var mensagens = ex.EntityValidationErrors
                            .SelectMany(x => x.ValidationErrors)
                            .Select(x => x.ErrorMessage);


                    var todos = string.Join("; ", mensagens);


                    var mensagem = string.Concat("Erros de validação: ", todos);


                    throw new Exception(mensagem);
                }
                catch (DbUpdateException ex)
                {
                    string mensagem = "";
                    var sqlException = ex.GetBaseException() as SqlException;
                    if (sqlException != null)
                    {
                        foreach (SqlError item in sqlException.Errors)
                        {
                            mensagem += item.Message;
                        }
                    }

                    throw new Exception(mensagem);
                }
                catch (System.Data.ConstraintException exc)
                {
                    throw new Exception(exc.Message);
                }
                catch (System.Data.EntityException ex)
                {
                    throw new Exception(ex.Message);

                }
                catch (SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }


    obrigado

    Ricardo


    Ricardo S. Pulini

    sábado, 22 de abril de 2017 14:31

Respostas

Todas as Respostas