Lệnh revert tường minh
Thuộc phần Nền tảng cơ bản trong hành trình Solidity của Coddy. Bài học 47 trên 53.
Một nhánh if có thể gọi revert(message) để chủ động từ chối một trường hợp không hợp lệ. Cách này hữu ích khi điều kiện từ chối dễ đọc hơn điều kiện ngược lại. Đặt các thao tác thông thường sau phần kiểm tra để chúng chỉ chạy khi đầu vào hợp lệ.
Các câu lệnh trong đoạn trích này chạy bên trong hàm main đã cho.
uint256 chosen = 4;
if (chosen > 6) { revert("Choice too large"); }
console.log(chosen + 2);Bốn không lớn hơn sáu, nên nhánh từ chối sẽ bị bỏ qua. Quá trình thực thi đi đến lời gọi console. Lệnh revert tường minh khiến lời gọi thất bại, giống như require không thành công; đây không phải cách để in ra kết quả bình thường.
revert kết thúc lời gọi hiện tại bằng lỗi thay vì tiếp tục bình thường.
Thử thách
DễTừ chối giá trị lớn hơn 50 bằng revert và kèm thông báo hữu ích. Với đầu vào được chấp nhận, in ra 50 trừ giá trị đó. Tất cả test đầu ra đều nằm trong phạm vi hợp lệ.
Các test truyền đối số cho main theo thứ tự này: uint256 value. Mỗi test bắt đầu với trạng thái hợp đồng mới.
Dùng console.log cho đầu ra được yêu cầu. Chỉ in các giá trị được yêu cầu, mỗi giá trị trên một dòng, không thêm nhãn trừ khi đề bài yêu cầu.
Tự làm thử
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 value) external view {
// Viết lời giải của bạn ở đây.
}
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
10Quy tắc hợp đồng
Điều kiện requireLệnh revert tường minhSự kiệnPhạm vi hiển thị và quyền riêng tưCập nhật có kiểm traTự luyện tập: Playground Solidity