您的位置首页生活百科

应用程序发生异常 unknown software exception

应用程序发生异常 unknown software exception

出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方

面的问题了。

一、先说说硬件

一般来说电脑硬件是很不容易坏的。内存出现问题的可能性并不大除非你的

内存真的是杂牌的一塌徒地主要方面是

1。内存条坏了,二手内存情况居多

2。使用了有质量问题的内存

3。内存插在主板上的金手指部分灰尘太多。

4。使用不同品牌不同容量的内存,从而出现不兼容的情况。

5。超频带来的散热问题。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检

测出内存的稳定度。

二、如果都没有,那就从软件方面排除故障了。

先说原理,内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要

操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的

内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就

是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、

用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0

值。这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通

知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是

否为0,如果是,则意味着出现了故障

应该采取一些措施挽救,这就增强了程

序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个

值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内

存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使

用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,

而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕

获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时

候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为

“0x00000000“。

内存分配失败故障的原因很,内存不够、系统函数的版本不

匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安

装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系

统档案之后。