.net中出現(xiàn)死循環(huán)或者無限遞歸
瀏覽量:2801
CRM定制請找易勢科技
記得在剛學(xué)c語言的時候,寫算法的時候,經(jīng)常會遇到死循環(huán)情況,當(dāng)死循環(huán)時候,結(jié)果是那dos界面,數(shù)字刷溜溜的往上滾,滾動條刷溜溜的越來越小,最后只有強制關(guān)閉程序,才能終結(jié)。
現(xiàn)在在.net中很少遇到死循環(huán)的情況了,因為很少寫算法了
.net的開發(fā)一般都在VS中進行,因為vs集成環(huán)境強大的編譯功能,強類型,自動垃圾回收,所以一般的錯誤都會在程序運行前發(fā)現(xiàn),當(dāng)然那些邏輯錯誤除外
項目用的是模板引擎,遇到了一個問題,在VS中運行會出現(xiàn)這個提示
“WebDev.WebServer.exe 遇到問題需要關(guān)閉”
在IIS中運行會出現(xiàn)
“Faulting application w3wp.exe, version 6.0.3790.3959, stamp 45d6968e, faulting module kernel32.dll, version 5.2.3790.3959, stamp 45d742c2, debug? 0, fault address 0x0000bee7”
經(jīng)過調(diào)試,發(fā)現(xiàn)出現(xiàn)了
“未處理的“System.StackOverflowException”類型的異常出現(xiàn)在System.dll 中。提示有無限循環(huán)或者無限遞歸”
報錯的地方不是后臺程序,而且其它頁面也正常
于是我從html頁面排除,發(fā)現(xiàn)我的模板里面有自調(diào)用自己的情況,就是無限遞歸調(diào)用自己。
刪除一切OK。
所以警惕無限遞歸,死循環(huán),警惕邏輯錯誤。