【发布时间】:2011-06-14 13:06:22
【问题描述】:
在我在 android 上的 e3roid 场景填充期间触发的过程中,我不断遇到我想要完全捕获的异常。也许我需要创建一个反向异常跟踪器,我可以在闲暇时横穿它,而不是立即进行对话,从而消除用户体验。
W/dalvikvm( 9540): threadid=1: thread exiting with uncaught exception (group=0x2
aac87c8)
E/AndroidRuntime( 9540): FATAL EXCEPTION: main
E/AndroidRuntime( 9540): java.util.ConcurrentModificationException
E/AndroidRuntime( 9540): at java.util.ArrayList$ArrayListIterator.next(Ar
rayList.java:573)
整个应用程序因异常对话框而死。我希望能够从全局范围内捕获 ConcurrentModificationException ,这样如果由于未知情况而发生此类事件,则整个应用程序不会被处理。
** 编辑 **
在这个块在 onSceneTouchEvent 期间被触发
try {
postUpdate(new AddShapeImpl(scene, onX, onY));
} finally {
}
我觉得我开得太快了。我需要放慢速度。
* 跟进 *
我似乎解决了这个问题..我做了其中之一......
if ( ballspawning == false)
try {
Log.v(DEBUG_TAG, "onSceneTouchEvent 1-1");
addnewball(scene, onX, onY);
Log.v(DEBUG_TAG, "onSceneTouchEvent 1-2");
} finally {
}
你会看到,在我放入一个 ballspawning boolean flag 并且我传递我的 spawning 值的辅助过程之后,我将它设置为一个字段,并在我的迭代结束时设置它并在之前检查列表的横向发生了..哇哦!好甜蜜!
没有真正需要全局陷阱.. 只是很好的旧调试。但我仍然很想实现所有错误的全局处理程序。 待办事项
我又爆发了并发错误..
截图
- 跟进 2 * Another One
我试图用
捕获 ConcurrentModificationException void uncaughtException(Thread t,
Throwable e){
Log.v(DEBUG_TAG, "uncaughtException **********");
Log.v(DEBUG_TAG,"thread " + t + " Throwable" + e.toString());
}
正如您在最后一个屏幕截图中看到的那样,上述方法永远不会被调用。
ConcurrentModificationException 使应用程序崩溃到一个异常对话框..
** 跟进**
我已经添加了
public class LauncherActivity extends E3Activity implements UncaughtExceptionHandler ,FPSListener,SceneUpdateListener
在运行时额外的未实现方法
@Override
public void uncaughtException(Thread t,Throwable e) {
Log.v(DEBUG_TAG, "uncaughtException **************");
Log.v(DEBUG_TAG,"thread " + t + " Throwable" + e.toString());
}
仍然没有异常捕获...
我也加了
newThread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(){
@Override
public void uncaughtException(Thread t, Throwable e) {
Log.v(DEBUG_TAG,"*************** ERROR! An exception occurred in " + t.getName() + ". Cause: " + e.getMessage());
}
});
newThread.start();
没有仍然没有陷阱......
啊哈
哇哦!!
刚刚发现异常!!查看屏幕截图...你会看到!!!!!!
http://img17.imageshack.us/img17/135/concurrentmodificatione.png
感谢所有让我努力深入了解 Java 异常处理的原因!!
我把并发问题困在了
删除...
公共类 LauncherActivity 扩展 E3Activity 实现 UncaughtExceptionHandler ,FPSListener,SceneUpdateListener
我必须原创...没有 UncaughtExceptionHandler 实现
并添加了 Johnny Lee 非常详细的课程。 blog.dimond.de/?p=63
真的很甜。
【问题讨论】:
标签: java android exception-handling concurrentmodification