快速业务通道

诊断Java代码: 平台相关性“gotcha问题” - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
误的。一旦诊断出了这个问题,修正它并不难:

FileReader reader = new FileReader(file); _edito***t.read(reader, tempDoc, 0); reader.close(); // win32 needs readers closed explicitly!

诊断Java代码: 平台相关性“gotcha问题”(3)

时间:2011-02-11 IBM Eric E. Allen

跨平台并不是毫无代价的

正如本专栏的示例所演示的那样,Java 语言并不能不受潜伏的与平台相关的错误的影响。这些错误的症状多种多样,但说不定什么时候,某些错误就会咬您一口。

诚然,用 Java 语言比用许多其它语言编写跨平台的代码,其代价要小得多,但并不是毫无代价的。我能给出的最好建议是在尽可能多的平台上、使用尽可能多的 JVM 运行您的单元测试。还有,跟往常一样,避免编写易于出错的代码。易于出错的代码与平台相关性的结合是致命的。这里是我们这个月讲述的内容的总结:

模式:与供应商相关的错误。

症状:错误可能出现在某些 JVM 上,但在其它 JVM 上则不出现。

起因:JVM 规范未加以指定的某些方面(例如,未对尾递归调用的优化作出要求)。这类起因比 与版本相关的错误少见。

处方和预防措施:随所碰到问题的不同而不同。

模式:与版本有关的错误。

症状:错误可能出现在 JVM 的某些版本上,但在其它版本上则不出现。

起因:某些 JVM 实现中的错误,例如 Swing。这是比 与供应商相关的错误更常见的起因。

处方和预防措施:随所碰到问题的不同而不同。

模式:与操作系统相关的错误。

症状:错误可能出现在某些操作系统上,但在其它操作系统上则不出现。

起因:系统行为的规则在不同操作系统上有所不同(例如:在 Unix 上,打开的文件可以被删除;在 Windows 上则不能)。

处方和预防措施:随所碰到问题的不同而不同。

我要感谢 DrJava 开发人员 Brian Stoler 和 John Garvin,谢谢他们协助找出本文所讨论的后两个错误。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号