程序死循环 漏洞Bugs 解决办法


一般来说,死循环会引发 RecursionError 异常,且会导致应用程序崩溃。

由于死循环形成了完整闭环回路,且在短时间内,不停反复循环执行会消耗大量软/硬件资源且不可接受。

若死循环递归深度较小,有时可能不会引发 RecursionError 异常,还可能不会导致应用程序崩溃。

这种不引发异常且不导致应用程序崩溃的浅递归死循环,是不稳定的。

自循环


像死循环但未形成完整回路的高频计算,是不会引发 RecursionError 异常的,且应用程序也不会崩溃。

由于短时间内,不停顺序执行消耗的软/硬件资源有限且可接受。

这种编程方式,称为 自循环

若这种自循环不是想要的,应尽可能避免;因为有预期外的,不必要的软/硬件资源消耗。

递归深度


sys.getrecursionlimit() 可以获取 Python 解释器堆栈的最大递归深度,在 Windows 10 为 1000 (默认值从属平台)。

sys.setrecursionlimit(limit) 可以设置 Python 解释器堆栈的最大递归深度,但过大 (或过小) 也可能引发 RecursionError 异常。

版权声明: 本文为独家原创稿件,版权归 乐数软件 ,未经许可不得转载。