Articles of exception处理

Android系统。 让开发人员知道抛出exception的最佳方法

在抛出exception之后,处理exception的最常用方法是什么。 我并不是说要从exception中回来做什么,而不是关闭Activity或者其他什么。 我的意思是如何让开发人员知道从exception中创建的错误号,StackTrace和其他日志文件? 将这些发送给开发人员的最常用方法是什么? 或者这样做并不常见? 您是否要求用户发送包含此信息的电子邮件? 您是否实施了某种forms,类似于联系页面上网站上使用的forms,并自动发送信息? 开发人员如何处理这个问题? 我真的很想从用户那里获得一些反馈,所以我知道我的应用程序在哪里崩溃,但我不确定从哪里开始。

未连接。 调用Connect或等待onConnected()被调用

我的应用程序是以地图为中心的。 我经常调用requestLocationUpdates() 。 偶尔,我调用它时会遇到这个exception 。 或者在任何其他称这种方法的地方。 我看到SOF上提出的解决方案,遗憾的是似乎没有什么对我有用。 即使我调用mLocationClient.connect() ,也不能保证它立即连接,如果我错了就纠正我。 我该如何解决这个问题? 案例R.id.btnContinue: gpsLocationDailog.cancel(); int isGooglePlayServiceAvilable = GooglePlayServicesUtil .isGooglePlayServicesAvailable(getApplicationContext()); if (isGooglePlayServiceAvilable == ConnectionResult.SUCCESS) { /** thorws shitty expectiosn **/ mLocationClient.connect(); try { mLocationClient.requestLocationUpdates(REQUEST, this); mCurrentLocation = mLocationClient.getLastLocation(); fireQueryToGetTheResponse(latitude, longitude); rl.setVisibility(View.VISIBLE); mDrawerLayout.setVisibility(View.GONE); mSlidingUpPanelLayout.setVisibility(View.GONE); } catch (IllegalStateException e) { mLocationClient.connect(); Log.e(TAG, ” Waiting for onConnect to be called”); } […]

在处理未被删除的Exception之后,如何阻止我的应用程序被僵尸化?

我通过以下方式处理我的应用程序中发生的任何未捕获的exception: Thread.setDefaultUncaughtExceptionHandler(this); 这是我的启动器Activity实现UncaughtExceptionListener。 我处理exception并将其发送到我的日志服务器就好了,但是,我的应用程序然后没有结束。 它只是作为一个僵尸一直运行,直到按下主页或后退按钮。 处理exception后如何终止进程? 编辑 这是一个测试和工作活动,它抛出一个未捕获的exception(由Thread捕获)并进行处理。 从未发布toast,并且一旦记录exception,该过程将变为僵尸。 class TestActivity extends Activity implements UncaughtExceptionListener { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); Thread.setDefaultUncaughtExceptionHandler(this); throw new RuntimeException(“I’m a destuctive booger.”); setContentView(R.layout.activity_test); } @Override public void uncaughtException(Thread thread, Throwable toss) { Log.e(TAG, “An uncaught exception has been recieved.”, toss); Toast.makeText(this, “Big Error”, Toast.LENGTH_LONG).show(); } }

处理CursorLoaderexception

我有一个Fragment实现LoaderManager并使用CursorLoader(没什么特别的)。 我想捕获查询期间抛出的exception,但我看不出怎么样! 有帮助吗? 谢谢。

如果这是主线程崩溃,如何从UncaughtExceptionHandler启动活动?

如果检测到未处理的exception,我正在尝试启动错误报告活动。 问题是从主线程抛出的exception。 如果主线程崩溃,有没有办法启动活动?

如何处理try catchexceptionandroid

我正在使用方法getBitmap来显示图像。 当我使用它作为方法时,如果它返回位图显示图像但是如果它返回null,则捕获exception。 但是如果输入的url也是错误的,它应该处理FileNotFoundException。 如何在UI中处理两个exception并显示? public Bitmap getBitmap(final String src) { try { InputStream stream = null; URL url = new URL(src); java.net.URL url = new java.net.URL(src); URLConnection connection = url.openConnection(); InputStream input = connection.getInputStream(); myBitmaps = BitmapFactory.decodeStream(input); return myBitmaps; } catch (IOException e) { e.printStackTrace(); Log.e(“IO”,”IO”+e); return null; } catch(OutOfMemoryError e1) { e1.printStackTrace(); Log.e(“Memory exceptions”,”exceptions”+e1); […]

RxJava默认error handling程序

抱歉,是否有可能在RxJava中设置默认error handling程序? 例如,我在Utils.kt文件中的一些代码: fun BaseFragment.callGallery(view: View){ view.clicks().bindToLifecycle(this).subscribe { RxPaparazzo.takeImage(this) .usingGallery() .subscribe { response -> throw RuntimeException(“Where is this exception from?”) } } } 但是在Utils.kt没有任何关于Utils.kt或任何文件的提示。 我知道我可以在每个订阅者中设置onError。 代码如下: .subscribe ({ response -> …. }, { it.printStackTrace() }) 但我更愿意为所有订阅者设置一个默认的onError。 我该怎么做? 堆栈跟踪: 05-07 12:11:48.246 10966-10966/ru.egslava.rxfluxtest E/AndroidRuntime: FATAL EXCEPTION: main Process: ru.egslava.rxfluxtest, PID: 10966 java.lang.RuntimeException: Unable to destroy activity {ru.egslava.rxfluxtest/rx_activity_result.HolderActivity}: […]

如何在Android中处理ConcurrentModificationException

我试图从ArrayList中删除项目。 有时它会popup一个exception,“java.util.ConcurrentModificationException”。 首先我尝试通过array_list_name.remove(i)删除它们,但它失败了,有些人被要求使用Iterator。 所以我目前的代码如下。 for (Iterator iter = array_list_name.iterator(); iter.hasNext();) { Collectable s = iter.next(); if (s.equals(array_list_name.get(id))){ iter.remove(); return true; } } 我在视图中的onDraw()函数中调用“array_list_name”。 我的观点是SurfaceView。 任何人都可以建议我如何从ArrayList中删除项目而不会收到此错误。

避免Android上的try / catch

我是Android环境中的新手,我已经开始编写一些代码来对数据库执行一些查询。 当我必须处理exception时,我不知道采用什么方法 – 在Android中我曾经使用throws声明方法,但似乎在android中不允许throws ? try-catch ? 我这样说是因为eclipse不建议我添加throws声明就像我在Android环境之外,我猜它与extends Activity 。 那么在android中处理exception的适当方法是什么? 使用try-catch在每个句子周围使我的代码看起来很糟糕,这不是我想要做的。

MonoDroid:未处理的exception恢复

我正在尝试向我的应用程序添加一个默认处理程序,以便我可以从其他未处理的exception中恢复。 我发现Android / MonoDroid提供的三种机制,据我所知,应该可以实现这一点,但我无法让它们中的任何一种工作。 这是我的代码: using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; using Android.Widget; using Android.OS; namespace TestApp { [Android.App.Activity(Label = “TestApp”, MainLauncher = true, Icon = “@drawable/icon”)] public class MainActivity : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(new LinearLayout(this)); //set up handlers for uncaught exceptions: //Java solution Java.Lang.Thread.DefaultUncaughtExceptionHandler […]