访问由错误的 getStackTrace 函数创建的字符串会导致 FlashDevelop IDE 出现非常不寻常的行为。
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
public function Main():void
{
print("Start");
var err:Error = new Error();
var stack:String = err.getStackTrace();
print(stack);
// also occurs when this is replaced with stack.length or stack[0]
print("End");
}
private function print(input:*):void
{
trace(input);
trace("---");
}
}
}
在输出的 Flash CS4 中运行时
Start
---
Error
at Main()
---
End
---
但是当在 FlashDevelop 中运行(替换trace()
为FlashConnect.trace()
)时,它会输出
Start
---
这是一个错误,还是 FlashDevelop 故意以不同的方式处理错误?
如果是后者,是否有解决方法来访问错误的堆栈跟踪?