Closed ednergassen closed 1 year ago
Sim, o EHorseCallbackInterrupted foi feito pra isso
Certo, mas como estou gerando uma EHorseException ele não deveria de interromper a execução do código ao invés de deixar chegar a rota que eu chamei?
As vezes a ordem dos middlewares tambem podem influenciar. Mas tipo, o EHorseException é pra você tratar uma exceção. O EHorseCallbackInterrupted é para interromper
Obrigado pelos retornos Vinicius.
Confesso que não entendi direito.
Me corrige se eu estiver errado. O middleware handle-exception é para ter uma padrão de retorno em formato JSON. Eu utilizo a EHorseException para tratar o meu erro e poder passar informações mais detalhadas sobre o erro gerado. Mas mesmo assim continua sendo uma exception, ou seja, deveria de interromper a execução do código e retornar o JSON com as informações.
try
Next();
except
on E: EHorseCallbackInterrupted do
raise;
on E: EHorseException do
begin
...
SendError(Res, LJSON, Integer(E.Status));
raise EHorseCallbackInterrupted.Create; // Incluído (No original não consta)
end;
on E: Exception do
begin
...
SendError(Res, LJSON, LStatus);
raise EHorseCallbackInterrupted.Create; // Incluído (No original não consta)
end;
end;
Não deveria de ter um raise EHorseCallbackInterrupted.Create;?
Não deveria lançar no EHorseCallbackInterrupted porque daí não passaria pelos demais middlewares.
Bom dia!
Estou testando o middleware handle-exception no horse. Criei um middleware para uma funcionalidade específica. Quando gero uma EHorseException no mesmo, a execução do código não é interrompida, chegando até a minha rota que eu chamei. Apenas se utilizo o EHorseCallbackInterrupted que é interrompido.
Esse comportamento é para ser dessa forma mesmo?