Closed axsr-snt closed 1 year ago
Na layer de implementação aparece um erro relacionado ao orElseThrow:
orElseThrow
@Override public Sacola verSacola(Long sacolaId) { return sacolaRepository.findById(sacolaId).orElseThrow( () -> { throw new RuntimeException("A sacola não foi encontrada"); } ); } @Override public Sacola fecharSacola(Long sacolaId, int formaPagamentoId) { Sacola sacola = verSacola(sacolaId); if (sacola.getItens().isEmpty()) { throw new RuntimeException("Insira itens na sacola."); } FormaPagamento formaPagamento = formaPagamentoId == 0 ? FormaPagamento.DINHEIRO : FormaPagamento.MAQUINETA; sacola.setFormaPagamento(formaPagamento); sacola.setFechada(true); return sacolaRepository.save(sacola); } }
error: unreported exception Throwable; must be caught or declared to be thrown
a solução que encontrei foi explicitar Throwable nos métodos que possuiam o orElseThrow
` @Override public Sacola verSacola(Long sacolaId) throws Throwable { return sacolaRepository.findById(sacolaId).orElseThrow( () -> { throw new RuntimeException("A sacola não foi encontrada"); } ); } @Override public Sacola fecharSacola(Long sacolaId, int formaPagamentoId) throws Throwable { Sacola sacola = verSacola(sacolaId); if (sacola.getItens().isEmpty()) { throw new RuntimeException("Insira itens na sacola."); } FormaPagamento formaPagamento = formaPagamentoId == 0 ? FormaPagamento.DINHEIRO : FormaPagamento.MAQUINETA; sacola.setFormaPagamento(formaPagamento); sacola.setFechada(true); return sacolaRepository.save(sacola); } }`
gostaria de saber se essa é a solução correta e o possivel motivo pelo qual o meu código apresentou essa necessidade?
Consegui identificar o erro, meu ItemId estava como String e não como Long
Na layer de implementação aparece um erro relacionado ao
orElseThrow
:error: unreported exception Throwable; must be caught or declared to be thrown
a solução que encontrei foi explicitar Throwable nos métodos que possuiam o
orElseThrow
gostaria de saber se essa é a solução correta e o possivel motivo pelo qual o meu código apresentou essa necessidade?