返回

这个吞金兽不好养

首页
关灯
护眼
字体:
第三十二章 长夜漫漫
   存书签 书架管理 返回目录
晨也是立刻就进入状态了,tcl号称一切都是字符串,这甚至可以把系统库函数运算符关键字都给rena掉,然后自己写一个替代品。
    这给了它的用户极大的自由度。
    比如itcl就是用命名空间模拟的面向对象语法——这种语言仍然是面向过程的;但你可以自己定义一个css关键字(实质上是一个过程),把它变得和一个真正的面向对象语言几乎一模一样。
    叶新晨首先盯上的是它的过程函数声明关键字proc。
    在这种语言里,你声明一个函数fun,格式就是
    procfun{
    body
    }
    它看似一个关键字;但tcl里一切都是字符串,因此这个proc实质上是个函数,它接受函数名、参数列表、函数体三个参数……
    叶新晨也是把系统的proc改名叫_sys_proc,自己写了个proc;这样当用户声明一个函数过程时,他的声明将以字符串格式先传给他。
    这样子的话叶新晨就可以做一些修改,把一些逻辑插进用户编写的代码中,然后再把修改后的代码传给_sys_proc。
    通过这种方式,叶新晨就接管了tcl的一切;然后修改了它的异常返回流程,识别出“用户未捕捉的异常”。
    毕竟叶新晨是记录了每个函数在某次被调用时、在调用链上所处的层级。尤其接近顶层尚未捕获就会影响到当前测试用例、当前测试套甚至引起整个程序过早退出,这些都是要记录的。
    现在,当程序出错时,如果通过异常处理程序解决了问题、允许程序继续执行了,

第三十二章 长夜漫漫(2/4)
上一页 目录 下一页