由于线程停在某个无法进行垃圾回收的点(可能是因为已对代码进行了优化),因此无法计算表达式的值.

先说下我出现这个异常情况的条件:我是在做WEB服务接入时,发生的,为了调用接口的方法,我先封装了一次,封装方法有2个参数,都是类类型。其它的这种方法都可以,只有这一个接口不通过。例如这个封装的方法叫M1,那它是这样的M1(class1 c1,class2 c2),其中在调用它时,c1,c2都是正常的,属性和字段都有值。但跟踪到这个方法时,通过看c1,c2的值会发现c1,c2中的属性就会有:由于线程停在某个无法进行垃圾回收的点(可能是因为已对代码进行了优化),因此无法计算表达式的值

但字段是好的。当时我想难道是类型属性的问题,又一行一行的检查了一下,发现没有问题啊。于是把两个类中的成员全注释。发现还是有这个问题。

在网上搜索了一些内容,没有任何帮助,都是按情况解决的。不具有通用性。

通过这个例子,看到构造器时,灵光一闪,终于发现了问题所在。原来是构造器的参数过多造成的。这个接口有150多个属性,所以我构造了一个150个参数的构造器。

改过之后,就好了。

所以,出现这个问题,所得经验如下:

1 与计算机系统无关,

2 与vs2008环境无关

3 与vs2008配置项无关

4 检查代码吧,是代码的问题。

posted on 2014-04-10 14:46  梅桦  阅读(6543)  评论(3编辑  收藏  举报