程序死循環 漏洞Bugs 解決辦法


一般來說,死循環會引發 RecursionError 異常,且會導緻應用程序崩潰。

由於死循環形成瞭完整閉環迴路,且在短時間內,不停反復循環執行會消耗大量軟/硬件資源且不可接受。

若死循環遞歸深度較小,有時可能不會引發 RecursionError 異常,還可能不會導緻應用程序崩潰。

這種不引發異常且不導緻應用程序崩潰的淺遞歸死循環,是不穩定的。

自循環


像死循環但未形成完整迴路的高頻計算,是不會引發 RecursionError 異常的,且應用程序也不會崩潰。

由於短時間內,不停順序執行消耗的軟/硬件資源有限且可接受。

這種編程方式,稱為 自循環

若這種自循環不是想要的,應盡可能避免;因為有預期外的,不必要的軟/硬件資源消耗。

遞歸深度


sys.getrecursionlimit() 可以獲取 Python 解釋器堆棧的最大遞歸深度,在 Windows 10 為 1000 (默認值從屬平颱)。

sys.setrecursionlimit(limit) 可以設置 Python 解釋器堆棧的最大遞歸深度,但過大 (或過小) 也可能引發 RecursionError 異常。

版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。