美文网首页
异常类问题处理汇总

异常类问题处理汇总

作者: 酥脆海苔饼干 | 来源:发表于2016-12-21 09:12 被阅读0次

    1.arrayindexoutofboundsexception:length=0,index=0

    原因:该问题的产生是因为在数组长度为0时,进行了0点位置的取值,导致数组越界的问题。

    处理方法:根据log查看出现问题所打印出来的行数,然后根据行数值判断取值语句。针对该类问题,最直接的解决办法是判断数组是否大于0,在进行求取。例如:

    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {

             if(grantResults.length > 0) {    //修改所添加的语句

                    if (requestCode == 1 && grantResults[0] != PackageManager.PERMISSION_GRANTED) {

                                finish();

                      }

              }

    2.android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application


    原因:在未创建对象时,就开始show

    处理方法:常为AlertDialog.show的时候所出现的异常。在show的时候必须要用context或者Activity.this,而不是用getApplication(),因为只有一个Activity才能添加实例;或者添加try,catch异常,使其能够跑出异常。

    3.Android SQLiteDatabaseLockedException: database is locked

    原因:产生该问题的原因是因为数据库同时在被多个线程在操作,导致数据混乱。

    解决方法:(1)加入同步锁,但是同步锁可能会产生ANR问题,导致程序长时间无响应;

    (2)db.isOpen()查看数据库是否打开及db.isDbLockedByOtherThreads()判断是否在被其他程序上锁,如果数据库处于关闭状态及未被锁定状态,即可。

    此外,若不是很放心,可以再在外层加入try...catch语句进行异常捕获。

    相关文章

      网友评论

          本文标题:异常类问题处理汇总

          本文链接:https://www.haomeiwen.com/subject/oehhuttx.html