18일 - 진술 되돌리기
특사-VC / 30일의 견고함
스마트 계약 개발을 배우기 위한 30일간의 Solidity 단계별 가이드.
Solidity Series의
18
중 Day30
입니다.오늘은 Solidity에서 Revert 문에 대해 배웠습니다.
되돌리기 문
이 문은 require 문과 유사합니다. 어떤 조건도 평가하지 않으며 어떤 상태나 진술에 의존하지도 않습니다. 예외를 생성하고, 오류를 표시하고, 함수 호출을 되돌리는 데 사용됩니다. 이 문에는 예외 정보와 관련된 문제를 나타내는 문자열 메시지가 포함되어 있습니다. revert 문을 호출하면 예외가 발생하고 사용되지 않은 가스가 반환되며 상태가 원래 상태로 되돌아갑니다. Revert는 require 핸들과 동일한 예외 유형을 처리하는 데 사용되지만 조금 더 복잡한 논리를 사용합니다.
예시:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract RevertStatement {
function checkOverflow(uint256 _num1, uint256 _num2)
public
view
returns (string memory, uint256)
{
uint256 sum = _num1 + _num2;
if (sum < 0 || sum > 255) {
revert(" Overflow Exist");
} else {
return ("No Overflow", sum);
}
}
}
산출:
96과 178을 checkOverflow 함수에 전달하면 "Overflow Exist"라는 메시지와 함께 예외가 발생합니다.
call to RevertStatement.checkOverflow errored: VM error: revert.
revert
The transaction has been reverted to the initial state.
Reason provided by the contract: " Overflow Exist".
Debug the transaction to get more information.
Reference
이 문제에 관하여(18일 - 진술 되돌리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/envoy_/day-18-revert-statement-3f3l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)