ErrorSolution 1.0.2

dotnet add package ErrorSolution --version 1.0.2
                    
NuGet\Install-Package ErrorSolution -Version 1.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ErrorSolution" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ErrorSolution" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="ErrorSolution" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ErrorSolution --version 1.0.2
                    
#r "nuget: ErrorSolution, 1.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ErrorSolution@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ErrorSolution&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=ErrorSolution&version=1.0.2
                    
Install as a Cake Tool

ErrorSolution

📌 Visão Geral

O ErrorSolution é um projeto em .NET 9 focado na padronização, categorização e tratamento de erros, com suporte à criação e incremento de tickets automaticamente a partir de exceções capturadas em tempo de execução.

O objetivo principal é oferecer uma base reutilizável para aplicações corporativas, permitindo:

  • Centralizar o tratamento de erros
  • Classificar falhas por tipo (técnica, negócio, integração, banco de dados, etc.)
  • Agrupar erros recorrentes
  • Simular cenários de falha para testes
  • Integrar facilmente com serviços de ticket/chamados

🧱 Estrutura do Projeto

ErrorSolution
│
├── App
│   ├── Dto
│   │   ├── ErrorType.cs
│   │   ├── TicketDto.cs
│   │   └── TicketFiltroDto.cs
│   │
│   ├── Interface
│   │   └── TicketInterface.cs
│   │
│   └── Service
│       ├── ErroSimulatorTabajara.cs
│       ├── TicketService.cs
│       └── UserContext.cs
│
├── ErrorSolution.csproj
└── README.md

🧩 Principais Componentes

🔹 ErrorType

Enum responsável por categorizar os erros do sistema, permitindo decisões automáticas como:

  • Agrupamento de tickets
  • Priorização
  • Tratamento diferenciado por tipo

Exemplos comuns:

  • Banco de Dados
  • Integração
  • Regra de Negócio
  • Infraestrutura
  • Erro Desconhecido

🔹 TicketDto

DTO principal que representa um ticket/chamado de erro, contendo informações como:

  • Código do erro
  • Mensagem
  • Sistema
  • Serviço
  • Ambiente
  • StackTrace
  • Quantidade de ocorrências
  • Tipo do erro

🔹 TicketService

Serviço central do projeto. Responsável por:

  • Criar novos tickets
  • Incrementar tickets existentes quando o erro já foi registrado
  • Aplicar regras de agrupamento
  • Tratar exceções capturadas dinamicamente

Fluxo típico:

try
{
    // código da aplicação
}
catch (Exception ex)
{
    await ticketService.CreateOrIncrement(ex);
}

🔹 TicketInterface

Contrato que define as operações do serviço de tickets, garantindo:

  • Baixo acoplamento
  • Facilidade para testes
  • Possibilidade de múltiplas implementações

🔹 ErroSimulatorTabajara

Classe utilitária usada para simular erros reais de diferentes cenários, como:

  • Erros Oracle (ORA-xxxxx)
  • Timeout de serviços
  • NullReferenceException
  • Falhas de autenticação
  • Erros de infraestrutura

Ideal para:

  • Testes
  • Demonstrações
  • Validação do mecanismo de agrupamento

🔹 UserContext

Responsável por fornecer informações de contexto do usuário ou da execução, como:

  • Usuário logado
  • Sistema
  • Ambiente
  • Serviço de origem

Essas informações enriquecem o ticket gerado.


🚀 Como Usar

1️⃣ Referencie o projeto

Adicione o ErrorSolution como dependência no seu projeto.

2️⃣ Injete o serviço

private readonly TicketService ticketService;

3️⃣ Utilize no try/catch

try
{
    throw new Exception("ORA-00942: tabela inexistente");
}
catch (Exception ex)
{
    await ticketService.CreateOrIncrement(ex);
}

🧪 Simulação de Erros

Para testar o comportamento do sistema:

ErroSimulatorTabajara.SimularErroOracle();
ErroSimulatorTabajara.SimularTimeout();
ErroSimulatorTabajara.SimularNullReference();

🎯 Benefícios

  • Redução de ruído operacional
  • Agrupamento inteligente de falhas
  • Histórico de reincidência de erros
  • Facilidade de integração com filas, DLQ ou sistemas de chamados
  • Código limpo e reutilizável

🛠️ Tecnologias

  • .NET 9
  • C#
  • Arquitetura em camadas
  • DTOs
  • Injeção de dependência

📄 Licença

Projeto de uso interno / corporativo.


✍️ Autor

Desenvolvido por Alexandre Padrão


Se quiser, posso:

  • Ajustar o README para inglês
  • Criar diagramas de fluxo
  • Documentar métodos com XML Summary
  • Preparar versão para open-source
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 81 1/16/2026
1.0.1 79 1/16/2026
1.0.0 102 1/16/2026 1.0.0 is deprecated because it is no longer maintained and has critical bugs.