- 按键认证导师
- 513852
- 3624
- 47
- 4633 朵
- 28052 个
- 6157 个
- 190000
- 2010-10-09
|
1#
t
T
发表于 2021-12-05 12:02
|
|只看楼主
- Dim 结果
- 结果 = 乘法("紫", "猫")
- TracePrint "这句调试输出不会被执行, 因为上面一行出错了!"
- Function 乘法(a, b)
- 乘法 = a * b
- End Function
复制代码上面代码执行后,会出现以下错误提示。 当前脚本第8行:发生运行时错误!错误代码:2,错误行号:8,错误信息: attempt to perform arithmetic on local 'ide4b998e6b3953a41' (a string value) |
相信大家都遇到过这种类似的错误提示,简单的用人话来翻译下就是,脚本执行到这一行的时候,突然发现了一个错误,后面代码无法再继续执行了。 那么是什么错误呢?在错误信息里有详细说明,但是最关键的一串内容'ide4b998e6b3953a41'我们看不懂,而且这个错误还会让我们的脚本代码直接停止运行!要崩溃了有木有!!! dang dang dang dang,紫猫插件闪亮登场!!! 利用紫猫插件的PCall功能,可以实现高级语言中的异常捕获,类似于Try...Catch...Finally的效果。让我们的代码就算出错了,也能继续执行,并且还可以对错误信息进行翻译。 详细例子如下: - Import "zm.luae" //导入插件,只需执行一次
- zm.Init //初始化插件,只需执行一次
- Dim 结果
- TracePrint "正确的内容可以正常执行并返回正确结果"
- 结果 = zm.PCall(乘法, 2, 4)
- TracePrint "正确结果 = ", 结果
- TracePrint "对乘法函数传入汉字参数会提示异常错误信息, 但是不会停止整个脚本运行"
- 结果 = zm.PCall(乘法, "紫", "猫")
- TracePrint "错误结果 = ", 结果
- TracePrint "可加入错误处理函数, 当出错后执行错误处理"
- 结果 = zm.PCall(乘法, "紫", "猫", 乘法异常处理, "学", "院")
- TracePrint "处理结果 = ", 结果
- TracePrint "未出现错误, 则不执行错误处理函数"
- 结果 = zm.PCall(乘法, 2, 4, 乘法异常处理, "学", "院")
- TracePrint "处理结果 = ", 结果
- TracePrint "可加入必定执行函数, 不管是否出错, 函数必定会被执行"
- 结果 = zm.PCall(乘法, "紫", "猫", 乘法异常处理, "学", "院", 乘法最终处理)
- TracePrint "处理结果 = ", 结果
- Function 乘法(a, b)
- 乘法 = a * b
- End Function
- Function 乘法异常处理(c, d)
- 乘法异常处理 = c & d
- End Function
- Function 乘法最终处理(x)
- TracePrint "我是最终处理函数, 必定会被执行一次", x
- End Function
复制代码
|