救命有时候c# 用try catch捕捉不到异常导致应用程序强行退出 怎么办
在线聊天
* sunjunfeng3
* 论坛www.chun123.c
* 等级:
* 可用分等级:乞丐
* 总技术分:259
* 总技术分排名:53870
* 结帖率:96.23%
*
发表于:2009-04-12 16:00:27 楼主
我做了一个互联网数据采集程序,我把程序每个地方都用 try catch 包起来的写入日志,为的是程序稳定运行不被非法退出 ,但是最近大跌眼镜,
我用一个 开源的HtmlAgilityPack.HtmlDocument 用于分析源网页的内容,但是当遇到某些变态的网页嵌套标签太多,上千个标签嵌套的时候如:
http://bbs.xgo.com.cn/thread-206818-1-1.html
程序在
用HtmlAgilityPack.HtmlDocument.DocumentNode的.SelectNodes用过XPATH分析网页时异常,并且这个异常是try catch 无法捕捉的,一但产生异常只有退出的份
异常的内容为:
未处理的“System.StackOverflowException”类型的异常出现在 mscorlib.dll 中。 排错提示:确保你没有无限循环或递归
我想请问难道这是.NET 底层的错误 我们程序员已经没有办法解决了么? 我研究了HtmlAgilityPack.HtmlDocument的开源代码,也无法处理 遇到http://bbs.xgo.com.cn/thread-206818-1-1.html
的畸型网页时不可避免地退出,大家有什么解决方案帮帮忙
我把代码上传了,哪位热心人帮我看看 下载地址 http://lot.bolaa.com/htmldo.rar
打开解决方案 调试 GetDocLinks 项目即可看到这个异常
------解决方案--------------------
在应用程序全局类的Application_Error里写点儿代码,然后专门写个类来处理异常,应该就能捕捉到所有的异常了。