在Android *** 作系统上捕获JAVA的unhandle运行时异常的最佳实践?

在Android *** 作系统上捕获JAVA的unhandle运行时异常的最佳实践?,第1张

概述在我在 Android上的e3roid场景人群中开火的过程中,我不断遇到我想要完全陷阱的异常.也许我需要创建一个后备异常跟踪器,我可以在闲暇时横穿,而不是立即对话,带走用户体验. W/dalvikvm( 9540): threadid=1: thread exiting with uncaught exception (group=0x2aac87c8)E/AndroidRuntime( 95 在我在 Android上的e3roID场景人群中开火的过程中,我不断遇到我想要完全陷阱的异常.也许我需要创建一个后备异常跟踪器,我可以在闲暇时横穿,而不是立即对话,带走用户体验.

W/dalvikvm( 9540): threadID=1: thread exiting with uncaught exception (group=0x2aac87c8)E/AndroIDRuntime( 9540): FATAL EXCEPTION: mainE/AndroIDRuntime( 9540): java.util.ConcurrentModificationExceptionE/AndroIDRuntime( 9540):        at java.util.ArrayList$ArrayListIterator.next(ArrayList.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,onY);                        Log.v(DEBUG_TAG,"onScenetouchEvent 1-2");                    } finally {                    }

你会看到我输入一个ballpawning布尔标志和我通过我的产卵值的次要程序是如此的金色…我把它作为一个字段,它在我的迭代结束时设置并在横向之前检查列表发生.. whoo hoo !!好甜蜜!

没有真正需要全局陷阱..只是好老调试.但我仍然希望实现所有错误的全局处理程序.去做

我再次爆发了并发错误..

截图

Debug Msgs

Another Occurrence

>跟进2 *
Another One

screen shot 4

almost narrowing down culprit

我试图用一个来捕获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方法

@OverrIDepublic 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

Caught Exception

这就是所有这些让我努力学习java异常处理的底部!!

Excellent Resource

我陷入了并发问题

删除…

公共类LauncherActivity扩展E3Activity实现UncaughtExceptionHandler,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运行时异常的最佳实践?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1128351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存