Menu
Coddy logo textTech

Reverts explicites

Fait partie de la section Fondamentaux du Journey Solidity de Coddy. Leçon 47 sur 53.

Une branche if peut appeler revert(message) pour rejeter explicitement un cas non valide. Cela est utile lorsque la condition de rejet est plus facile à lire que son opposé. Place le traitement normal après la garde afin qu’il ne s’exécute que pour une entrée acceptable.

Les instructions de cet extrait s’exécutent dans la fonction main fournie.

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

Quatre ne dépasse pas six, donc la branche de rejet est ignorée. L’exécution atteint l’appel à la console. Un revert explicite rejette l’appel tout comme un require échoué ; ce n’est pas un moyen d’afficher un résultat normal.

revert termine l’appel actuel avec un échec au lieu de poursuivre normalement.

challenge icon

Défi

Facile

Rejetez une valeur supérieure à 50 avec revert et un message utile. Pour une entrée acceptée, affichez 50 moins la valeur. Tous les tests de sortie sont dans la plage.

Les tests transmettent les arguments à main dans cet ordre : uint256 value. Chaque test commence avec un état de contrat vierge.

Utilisez console.log pour la sortie demandée. Affichez uniquement les valeurs demandées, une par ligne, sans libellés supplémentaires, sauf si la tâche les spécifie.

Essayez vous-même

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
    function main(uint256 value) external view {
        // Écrivez votre solution ici.
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Playground Solidity