使用《署名—非商业性使用—相同方式共享4.0 协议国际版》(CC BY-NC-SA 4.0)进行授权https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.zh-Hans
作者:简律纯
联系方式:qq:A2C29K9
更新日期:2022/5/28
原文
taboo前些日子(好久了)评论了basicFunction 的tryCatch函数,他说,
虽然和写tryCatch的初衷完全不一样,但是返校后在考试过程中突然发现这会是一个很不错的想法,于是单独写一篇帖子介绍它。
1. 准备工作
首先我们在basicFunction的chat指令函数里的tryCatch部分写上这些代码,图片中的抓取报错函数示例是read_file函数,输入的参数是path,文件路径;返回值为文件内容。
这段代码的意思是如果报错信息里有nil这个字符串那返回自定义报错回复内容,否则返回read_file函数的返回内容。
2.测试1
接着输入 #basicFunction:tryCatch
,不带任何参数,它等效于 #basicFunction:read_file
接着的确报错了,但是因为read_file函数的path参数为空,报错信息中有nil字符串,于是被替换成了预先写好的自定义报错回复内容。
接着我使用 #basicFunction:read_file myDiary.txt
查看了此文件,由于这个文件并不存在,于是krypton返回了read_file里写好的自定义回复。
3.修改
那么我们使用 #basicFunction:write_file myDiary.txt (内容)
来创建这个文件并且写下点什么烂人诅咒
4.测试2
已经写好了此文件,我们再用 #basicFunction:read_file myDiary.txt
查看一下,来确保有此文件并且写入了内容。
5.测试3
一切顺利,这时候我们再输入正确的指令来试试抓取报错
因为这次输入了参数,即 #basicFunction:tryCatch myDiary.txt
等效于 #basicFunction:read_file myDiary.txt
,所以顺理成章的返回了里面的文本内容。
6.后记
附上tryCatch函数的内容,如下。
本帖是作为利用basicFunction自带的chat指令并结合修改chat指令内tryCatch部分的函数名来进行报错排查的示例帖,您可以进行下面两个投票发表你的使用倾向。