1
resposta

[Sugestão] 09 Tratando exceções - Realizar teste de validação é melhor que perder tempo de processamento para consertar depois

Vai um teste simples, mas que poderia ser usado para evitar erros, é melhor prevenir do que remediar, sai mais barato. Fazer um teste de validação é coisa simples. Um registro ainda não é bom, agora imaginem mil registros. Imaginem buscar na nuvem por um endereço de um CEP em branco, invalido, isso é só um exemplo. Se eu posso tratar logo na entrada então vou deixar o erro acontecer para tratar depois. Tempo de processamento é muito caro e perda de tempo também. Quando é um erro imprevisível ainda pode ser tolerado e tratado. Muitas vezes quando o pessoal pedem alguma coisa é pra ontem dizem. Muita gente prefere empurar para frente para depois tratar o erro.

DELIMITER //

CREATE PROCEDURE sp_inserir_aluguel_seguro(IN p_cliente_id INT, IN p_carro_id INT)
BEGIN
-- 1. Verifica se o cliente existe
IF EXISTS (SELECT 1 FROM clientes WHERE id = p_cliente_id) THEN
-- 2. Se existir, realiza o insert
INSERT INTO alugueis (cliente_id, carro_id, data_aluguel)
VALUES (p_cliente_id, p_carro_id, NOW());

    SELECT 'Sucesso: Cliente encontrado. Aluguel registado!' AS Mensagem;
ELSE
    -- 3. Se não existir, exibe a mensagem de erro
    SELECT CONCAT('Erro: O cliente_id ', p_cliente_id, ' não existe na base de dados.') AS Mensagem;
END IF;

END //

DELIMITER ;

1 resposta

Oi, Fábio! Como vai?

Agradeço por compartilhar sua reflexão e seu código com a comunidade Alura.

Gostei bastante da forma como você destacou a importância de validar os dados logo na entrada do processo. Sua ideia faz muito sentido, porque evitar erros antes do processamento reduz custo, melhora desempenho e evita retrabalho no banco de dados. Também foi interessante ver o uso do IF EXISTS, deixando a procedure mais segura antes de realizar o INSERT.

Na sua experiencia, qual voce considera um dos pontos mais importantes para manter a qualidade de um sistema?

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!