aardio 文档

断言函数

在 aardio 中断言函数较少使用。

一是因为在动态语言中断言函数作用不大,另外一个原因是因为 aardio 的智能提示系统并不能很好地识别断言函数返回的对象。所以除非是写库函数时不需要智能提示,一般代码中使用断言函数可能不是很方便。

在 aardio 中建议使用更为灵活 if 语句检测并处理错误。

一、 assert 函数

函数原型:

assert(value,message,...)

assert 断言第一个参数 @value ,如果第一个参数为真则将所有参数作为返回值返回。如果第一个参数为假,则将第二个参数 @message 作为异常抛出。

在aardio 里很多函数都支持 assert ,如果执行成功第一个值返回一个真值。 如果执行失败则返回两个参数,第一个为 false 或 null ,而第二个返回值为错误信息。这恰好符合 assert 断言函数的逻辑。

例如: 

var func = assert( loadcode("\notfound.aardio") );

loadcode 如果执行成功,assert 将返回值顺利的传递给 func。 loadcode 如果执行失败,第一个返回值为null,第二个返回值为错误信息,则导致 assert 断言失败并抛出错误信息。

二、 assert2 函数

函数原型:

assert2(level,value,message,...)

参数 @value 为真则返回其他值,否则则将第二个参数 @message 作为异常抛出。参数 @level 指定抛出异常的调用级别,2 为调用者,1 为当前函数。

assert2 与 assert 函数的用法与作用是一样的,唯一的区别是 assert2 可以在首个参参数中指定抛出异常的调用栈级别。

三、 assertf 函数

函数原型:

assertf(condition,value,...)

assertf 的作用与 assert 基本相似,但是断言逻辑是完全相反的。assertf 要求第一个参数 @condition 必须为 false(false,0或null),如果为真(true,非零值,非null值),则将第二个参数 @value 作为异常抛出。如果第一个参数为假(断言成功),则返回该参数之后的其他参数。

assertf 与 assert 有以下区别:

Markdown 格式