Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Pq esse codigo sera duplicado na controller ao usar try/catch?

@PutMapping
fun atualizar(@RequestBody @Valid form: AtualizacaoTopicoForm): ResponseEntity<TopicoView> {
    try {
        val topicoView = service.atualizar(form)
        return ResponseEntity.ok(topicoView)
    } catch(e: Exception) {
        return ResponseEntity.status(500).build()
    }
}
2 respostas
solução!

Olá Vitor. Tudo bem?

O que acontece é que, ao utilizar blocos try/catch diretamente nas controladoras (controllers), você pode acabar repetindo o mesmo código de tratamento de erros em vários métodos. Isso ocorre porque, para cada método que pode lançar uma exceção, você precisaria adicionar um bloco try/catch similar.

Por exemplo, se você tiver vários métodos em diferentes controladoras que precisam lidar com exceções de maneira semelhante, você acabará duplicando o mesmo bloco try/catch em todos esses métodos.

Caso queira evitar essa duplicação, você pode usar um controlador de exceções global, que pode ser implementado com a anotação @ControllerAdvice no Spring Boot. Com isso, você pode centralizar o tratamento de exceções e aplicar a lógica de tratamento de erro de forma consistente em toda a aplicação.

Espero ter ajudado e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Obrigado pela a resposta!