在本章中,我们将探索Cairo中的异常处理。通过这些技术,你将能够应对代码中潜在的异常,并通过异常消息提供反馈。
异常处理
Cairo提供了多种方法来处理代码中的异常。在本章中,我们将介绍其中的两种:assert()
(推荐使用)和panic()
。
Assert
在Cairo中,assert()
函数是被推荐使用的异常处理方法。它的功能类似于Solidity中的require()
函数,接受两个参数:
condition
:条件,在程序运行时预期为true
。error message
:当condition
为false
时显示的异常消息(短字符串类型)。
assert()
会在运行时验证给定条件是否为true
,如果不是,它将抛出一个异常消息。
在下面的例子中,如果input
不等于0
,程序将被中断,并显示异常消息'Error: Input not 0!'
。
Panic
panic()
函数是Cairo提供的另一种异常处理方法。与assert()
不同,panic()
在不验证任何条件的情况下突然中止程序运行。它接受一个 felt252
数组作为参数(异常消息)。
我们可以改写assert_example()
函数,使用panic()
抛出异常:
此外,Cairo还提供了一个panic_with_felt252()
函数。panic_with_felt252()
和panic
之间的唯一区别是panic_with_felt252()
接受felt252
作为参数,而不是数组。
让我们修改assert_example()
以使用panic_with_felt252()
抛出异常。
总结
在本章中,我们探索了Cairo中可用于处理异常的各种技术。推荐的方法是使用assert()
。它的运作方式类似于Solidity中的require()
,验证条件,并在条件不满足时抛出异常消息,帮助确保你的代码按预期运行。