Skip to content

Campos personalizados em EHorseException#445

Merged
viniciussanchez merged 3 commits intoHashLoad:masterfrom
daviddev16:master
Mar 20, 2026
Merged

Campos personalizados em EHorseException#445
viniciussanchez merged 3 commits intoHashLoad:masterfrom
daviddev16:master

Conversation

@daviddev16
Copy link
Copy Markdown
Contributor

@daviddev16 daviddev16 commented Mar 20, 2026

Contexto

Minha equipe possui um fork do Horse com alguns recursos adicionais. Recentemente trabalhamos em um recurso para tratar erros relacionado a camada de persistência da nossa API. Funciona como um Proxy para nossa interface de repositório.

Adicionamos o recurso de campos personalizados na EHorseException para poder logar as seguintes informações em DEBUG: queryName, functionName e SQL, ao invés de colocar tudo em uma String no campo detail. Recurso simples, porém, bem útil e melhora a análise/debug.

Utilização

Exemplo contextualizado.

  EHorseException.New()
    .Title(PTypeInfo(TypeInfo(I)).Name)
    .Unit(GetTypeData(TypeInfo(I)).UnitName)
{$IFDEF LOG_SQL_ON_EXCEPTION}
    .Custom('queryName', EPersistenceException(Ex).QueryName)
    .Custom('functionName', EPersistenceException(Ex).FunctionName)
    .Custom('sql', EPersistenceException(Ex).SQL)
{$ENDIF}
    .Error(Ex.ClassName + ', ' + Ex.Message)
    .Status(THTTPStatus.InternalServerError);

@viniciussanchez viniciussanchez merged commit 66fb420 into HashLoad:master Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants