abort:abort 是一个带有参数的关键字,其参数类型为 u64 可自定义的错误编码。
应用场景:当执行错误或者执行终止时,我们通常需要返回一个错误编码,来告知具体问题,并且需要终止代码执行以及恢复事务。
语法:abort 错误编码。
作用:终止执行,恢复事务。
简单案例:
当传递的参数大于 10 时,终止代码执行,并且返回自定义错误编码 1024。
script { use 0x1::Debug; fun test_abort(a: u64){ let b = 10; if (a > 10) abort 1024; Debug::print(&b); }}
assert:assert 是一个内置方法,是对 abort 进行了封装。
语法:assert ! (cond, code)
Cond: 条件类型为 bool;
Code:类型为 u64;
作用:当 cond 条件不为真时,终止执行,恢复事务,并且返回 code 错误编码,反之将不执行任何操作。
代码:
script { fun test_abort(a: u64){ assert!(a == 1, 0); Debug::print(&a); }}
代码解读:
当变量 a 等于 1 时,判断为真,则不会执行 assert 方法。并且继续执行 assert 方法后的代码,打印 a;
当变量 a 不等于 1 时,判断为假,则会终止执行,恢复事务,并且会发挥 assert 中的 code 错误编码。
动动手,敲敲吧!!!
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。