转眼在博客园已经呆了两年多了,在这两年多的时间内,一直是在看别人的文章,自己都不怎么发表文章。现在2012年的世界末日也过去了,2013年的元旦也来了,忽然想起是不是应该写点东西了。正好,这段时间做项目时,也解决过一些问题,正好把收获点写写。
问题1:代码执行过程中发生System.StackOverflowException
问题2:代码执行过程中发生System.OutOfMemoryException
之前一直没遇到过这两个异常,这可能是由于写的代码不多和维护的项目不多的缘故。问题1是代码执行3小时之后发生的,当时就简单想着是不是内存不够用了,导致溢出了,这时内存占用应该非常大,不过通过任务管理器来查看,否定了自己的看法,此时内存的占用量只是200M.后来通过查看资料和查阅代码,发现代码中存在无限递归的处理,而这正是System.StackOverflowException发生的原因。找到了问题所在,把递归转换成循环,问题就解决了。
问题2和问题1基本相似,都是和内存有关的错误。当代码中出现类似 Int【】【】【】【】 =new int [][][][]这样的代码时,出现System.OutOfMemoryException的可能性就比较大了。四维数据如果每个维度都是1000以上的话,就有可能出现异常,原因是系统中没有这么大的内存可以分配。
以上两个是最近做项目过程中遇到的问题,整理一下,以备日后查阅。