Apache flex ActionScript 3.0编译器宏创建当前字符串作为文件和代码行?
我想这样做:Apache flex ActionScript 3.0编译器宏创建当前字符串作为文件和代码行?,apache-flex,actionscript-3,compiler-construction,macros,Apache Flex,Actionscript 3,Compiler Construction,Macros,我想这样做: try{ operationThatMayFail(); } catch(e:Error){ handleError(); MyLogFileLogger.writeEntry("Error ocurred in file " + CURRENT_AS_FILE + " on line: " + CURRENT_LINE); } 当然我可以硬编码,但是如果我改变了as文件的某些内容,行号将不再正确,或者可能我重命名了as文件等等。如果能够使用编译器指令以某
try{
operationThatMayFail();
}
catch(e:Error){
handleError();
MyLogFileLogger.writeEntry("Error ocurred in file " + CURRENT_AS_FILE + " on line: " + CURRENT_LINE);
}
当然我可以硬编码,但是如果我改变了as文件的某些内容,行号将不再正确,或者可能我重命名了as文件等等。如果能够使用编译器指令以某种方式创建该字符串,那就太好了
在使用ActionScript 3.0创建的AIR应用程序中,这是否可行?您应该查找。您将要执行以下操作:
try{
operationThatMayFail();
}
catch(e:Error){
handleError();
MyLogFileLogger.writeEntry(e.getStackTrace());
}
是的,我知道,但这只在调试版本中有效。我正在寻找一些可以在最终用户安装上运行的东西,这样,如果出现问题,他们可以向我们发送错误日志,这是不可能的。您需要FlashPlayer调试才能读取文件的元数据并捕获这些错误。您可以(也应该)做的最好的事情是,在部署之前,在保留重要事件日志的基础上,进行单元测试以尝试捕获错误。如果您有一个函数的尝试,但失败了,那么很有可能该函数就是问题所在,应该使用调试器进行进一步的调查…显然-但是如果它只在客户端计算机上失败,那么在编译时使用一个编译器指令来创建正确的调试字符串会很方便