在Android操作系统上捕获JAVA的unhandle运行时异常的最佳实践?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Android操作系统上捕获JAVA的unhandle运行时异常的最佳实践?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3341字,纯文字阅读大概需要5分钟。
内容图文
在我在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 {
}
你会看到我输入一个ballpawning布尔标志和我通过我的产卵值的次要程序是如此的金色…我把它作为一个字段,它在我的迭代结束时设置并在横向之前检查列表发生.. whoo hoo !!好甜蜜!
没有真正需要全局陷阱..只是好老调试.但我仍然希望实现所有错误的全局处理程序.去做
我再次爆发了并发错误..
截图
>跟进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
并在运行时期间额外的Unimplimented方法
@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
甜蜜的东西真的.
解决方法:
我想你宁愿确保ConcurrentModificationException根本没有发生.
当您使用Iterator迭代Collection时会出现异常.在进行迭代时,您无法更新集合.这是一个会出现的情况:
List<Integer> intList = new ArrayList<Integer>();
for (int i=0; i < 100; ++i) {
intList.add(i);
}
int addValue = 1000;
for (Integer i: intList) {
if (i%10 == 0) {
//get ready for ConcurrentModificationException...
intList.add(++addValue);//this is bad, because we are iterating over intList.
}
}
这会导致ConcurrentModificationException,因为我们正在遍历列表并尝试在迭代发生时添加到列表中.
内容总结
以上是互联网集市为您收集整理的在Android操作系统上捕获JAVA的unhandle运行时异常的最佳实践?全部内容,希望文章能够帮你解决在Android操作系统上捕获JAVA的unhandle运行时异常的最佳实践?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。