Menu
Coddy logo textTech

Reverts Explícitos

Parte da seção Fundamentos do Journey de Solidity da Coddy. Lição 47 de 53.

Um ramo if pode chamar revert(message) para rejeitar explicitamente um caso inválido. Isso é útil quando a condição de rejeição é mais fácil de ler do que o seu oposto. Coloque o trabalho normal após a proteção para que ele seja executado somente com uma entrada aceitável.

As instruções neste trecho são executadas dentro da função main fornecida.

uint256 chosen = 4;
if (chosen > 6) { revert("Choice too large"); }
console.log(chosen + 2);

Quatro não excede seis, então o ramo de rejeição é ignorado. A execução chega à chamada do console. Um revert explícito rejeita a chamada assim como um require que falha; ele não é uma forma de exibir um resultado normal.

revert encerra a chamada atual com falha, em vez de continuar normalmente.

challenge icon

Desafio

Fácil

Rejeite valores acima de 50 com revert e uma mensagem útil. Para entradas aceitas, imprima 50 menos o valor. Todos os testes de saída estão no intervalo.

Os testes passam argumentos para main nesta ordem: uint256 value. Cada teste começa com o estado do contrato renovado.

Use console.log para a saída solicitada. Imprima apenas os valores solicitados, um por linha, sem rótulos adicionais, a menos que a tarefa os especifique.

Experimente você mesmo

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 value) external view {
        // Escreva sua solução aqui.
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Solidity