错误
| 时机 | 示例 | 结果 |
|---|---|---|
| 编译错误 | 语法错误、未知的内置函数、参数个数错误、未定义的变量、拼错的常量、未闭合的字符串或注释 | 不会运行任何内容。只报告第一个错误,并附带其行号和列号。诊断控制台和配置界面的编辑器会显示该错误。 |
| 内置函数失败 | 参数类型错误、子字符串起始位置为负数、MathRandom(5, 1)、未知的消息框按钮名称、空的拆分分隔符、打开 Input.Observer 已打开的串口 | 操作在该调用处停止。其后的语句不会运行,错误以 内置函数名称:原因 的形式报告。 |
| 软结果 | 对类型不匹配的值使用运算符、除以零、空窗口或已关闭的窗口(其位置、大小或 DPI 读作 0)、索引超出范围、文件不存在、无法打开的串口 | 不报错。您会得到 0、false、""、-1 或空 Window,脚本继续运行。 |
常见编译错误及其含义:
| 您写的 | 失败原因 | 应改为 |
|---|---|---|
i++; / i += 1; | 没有自增运算符或复合赋值运算符 | i = i + 1; |
while (x) { … } | while 不是关键字,因此会被当作未知函数 | for 循环 |
x = n % 2; | 没有 % | x = n - (n / 2) * 2; 或 n & 1 |
'text' | 单引号不是字符串分隔符 | "text" |
r = .5; / r = 1e3; | 不能以小数点开头,也不支持指数 | 0.5 / 1000.0 |
a = b = 0; | 赋值不是表达式 | a = 0; b = 0; |
for (;;)、for (i = 0, j = 0; …) | 初始化和步进部分都必须是单个赋值 | j = 0; for (i = 0; …; i = i + 1) |
print(x) | 未知函数。内置函数名称必须完全一致,且区分大小写。 | UtilityPrint(…) |
第一行写 y = total + 1; | total 在此位置之前尚未赋值 | 先为它赋值:total = 0; |