场景:有一个二十几个类构成的一个生产排产算法,用了一段时间后发现了一个怪现象,总时抛同:“由于线程停在某个无法进行垃圾回收的点(可能是因为已对代码进行了优化),因此无法计算表达式的值。”这样一个异常,这个异常是在一个方法调用时即产生,而此时方法内容并未开始执行
。
问题:作为政治任务入手进行处理。
1、分块代码注释,确定错误源,确定到行级。
2、这行代码居然跑到了另一个类.................................................
3、发现问题:参数中有一个是个“结构”
4、代码太乱了,一行一行分析不太可行了,不确定是不是这个原因,把Struct改成Class,OK通过。
5、看一下后续代码,原来这个“结构”参数后来补N多地方使用。
小小分析了一下,由于方法内部逻辑问题,造成同一结构所提供的“值”不一致导致此现象,不过这个错误信息也相关的有才。
解决办法:
不改变原程序设计和代码,在参数前指定一下:来个强制传址引用 ref,OK皆大欢喜,所有地方OK。
转载于:https://www.cnblogs.com/spymaster/archive/2009/07/21/1527958.html