荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: icefire (拒绝再玩), 信区: Java
标  题: 小心使用init
发信站: BBS 荔园晨风站 (Tue May 19 18:29:43 1998), 转信

在情华看到这篇文章,觉得好象我碰到的情况有点相同,拿来给大家看看

发信人: sczscz (小四), 信区: Java
标 题: 小心使用init
发信站: BBS 水木清华站 (Tue May 19 13:03:28 1998)

还在我们搞毕业设计的日子里,老怪和我发现一个问题,applet的init方法里
不是什么操作都可以正常执行的,比如一些io操作,当时是与socket有关的一
些io流上的操作,被放在init方法里执行,但结论是执行得非常不稳定,有些
时候可以正常执行,但绝大多数时候是不能按照我们所期待的那样执行下去。
据我们分析,是因为init属于回调方法,由浏览器的解释java代码的部分回调
,但浏览器使用了多线程技术回调,也许正是因为多线程的缘故,导致io操作
的异常。当我们用appletviewer调试的时候却没有这种问题,更加证实了我们
的猜想。当时是用netscape的java控制台调试,抛出的例外很复杂,属于运行
时例外,与浏览器本身有关的例外,也与多线程有关。时隔经年,我又碰上了
类似的问题,在init里的与数据库的连接倒是可以正常执行,但企图打开本地
文件的io操作却执行得相当不稳定,偶尔有一次执行成功,也是跌跌撞撞的,
不爽。其余多数时候总是抛出例外,却不是多线程方面的,说是安全例外。但
是我已经使用了数字化签名技术,并且将权限开放到最大。无奈之下,想起了
当时的结论,避免在init里执行io操作,要么启动另一个线程,要么干脆从别
的事件驱动里激活。这次我是在paint方法里执行了一下,一切正常,百试不爽。
呵呵,值得一提的是,用appletviewer执行,依旧没有任何问题,天知道浏览
器回调init时干了些什么?
--
来去如风

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.5]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店