Jdbctemplate erro de EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0

Bom Dia

Estou efetuando a seguinte consulta no banco

public PedidoIten procuraDescricao(String referencia, PedidoIten iten ){
   
       String sql = "select a.ID , a.DESCRICAO, b.ID as CODIGO_BARRA  from PRODUTO as a inner join PRODUTO_CODIGO_BARRA as b on  a.ID = b.FK_PRODUTO where a.DESCRICAO LIKE  ? ";
       return jdbctemplate.queryForObject(sql, 
               new Object[]{"%"+referencia} , 
               new RowMapper<PedidoIten>() {
                    @Override
                    public PedidoIten mapRow(ResultSet rs, int i) throws SQLException , EmptyResultDataAccessException {
                        PedidoIten pedidoIten = new PedidoIten();
                        try {
                            pedidoIten.setDescricao(rs.getString("DESCRICAO"));
                            pedidoIten.setFk_produto(rs.getInt("ID"));
                            pedidoIten.setFk_codigo_barra(rs.getInt("CODIGO_BARRA"));                               
                        } catch (EmptyResultDataAccessException e) {
                            pedidoIten.setDescricao(referencia);
                        }
                        return pedidoIten;
           }
       });
       
    }
}

Quando a consulta e encontrada tu certo o problema e quando a consulta não retorna valor e apresentado o seguinte erro org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0

Não sei se estou interpretando errado mas na documentação Doc spring fala que basta tratar o erro com > throws EmptyResultDataAccessException que esta tudo resolvido.

já tentei de diversas formas mas toda vez que o erro e apresentado a execução para .
Obrigado pela ajuda

é o .queryForObject que lança a exception e não o mapping,

atribua o .queryForObject para uma variavel tipo:

    PedidoItem p = jdbctemplate.queryForObject(sql, 
                   new Object[]{"%"+referencia} , 
                   new RowMapper<PedidoIten>() {
                        @Override
                        public PedidoIten mapRow(ResultSet rs, int i) throws SQLException , EmptyResultDataAccessException {
                            PedidoIten pedidoIten = new PedidoIten();
                                pedidoIten.setDescricao(rs.getString("DESCRICAO"));
                                pedidoIten.setFk_produto(rs.getInt("ID"));
                                pedidoIten.setFk_codigo_barra(rs.getInt("CODIGO_BARRA"));                               
                                pedidoIten.setDescricao(referencia);
                            return pedidoIten;
               }
           });
return p;

faça o try encapsulando essa operação.

Obrigado pela ajuda hoje pela manha estava estudando excetion e percebi que estava fazendo errado o tratamento do erro vou marcar como resolvido