ErrorSolution 1.0.2
dotnet add package ErrorSolution --version 1.0.2
NuGet\Install-Package ErrorSolution -Version 1.0.2
<PackageReference Include="ErrorSolution" Version="1.0.2" />
<PackageVersion Include="ErrorSolution" Version="1.0.2" />
<PackageReference Include="ErrorSolution" />
paket add ErrorSolution --version 1.0.2
#r "nuget: ErrorSolution, 1.0.2"
#:package ErrorSolution@1.0.2
#addin nuget:?package=ErrorSolution&version=1.0.2
#tool nuget:?package=ErrorSolution&version=1.0.2
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 | Versions 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. |
-
net9.0
- Extensions (>= 1.0.0)
- Microsoft.AspNetCore.Http.Abstractions (>= 2.3.9)
- ORM_FlexFlow (>= 9.2.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.