美文网首页
安卓和java常见异常总结

安卓和java常见异常总结

作者: JaocbYu | 来源:发表于2018-03-25 18:11 被阅读0次

    常见异常

    1. java.lang.NullPointerException:空指针异常
      简单地说就是调用了未经初始化的对象或者是不存在的对象,有时可以直接点击定位到空指针对应的行。

    2. java.lang.ClassNotFoundException:指定的类不存在  
      如果是activity考虑是否在清单文件中注册,是否把类写在了另外一个项目,添加的依赖库是否正确等;

    3. java.lang.IndexOutOfBo undsException:数组下标越界
      |--ArrayIndexOutOfBoundsException
      |--StringIndexOutOfBoundsException
        现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常;

    4. java.lang.IllegalArgumentException:方法的参数错误
      比如g.setColor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的, 就是赶紧去检查一下方法调用中的参数传递是不是出现了错误;

    5. java.lang.IllegalAccessException:没有访问权限
        当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常;

    6. java.lang.OutOfMemoryError:内存不足错误
      当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误;

    7. java.lang.StackOverflowError:堆栈溢出错误
      当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误;

    8. java.lang.ClassCastException:类型转换异常
      当把一个对象归为某个类,但实际上此对象并不是由这个类创建的,也不是其子类创建的,则会引起异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。

    9. java.lang.IllegalAccessException:违法的访问异常
      当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常;

    10. SQLException:操作数据库异常类。
      在Java应用程序中,所有数据库操作发生异常时,都会触发这一个类。所有此时Java应用程序本身的提示信息往往过于笼统,只是说与数据库交互出现错误,没有多大的参考价值。此时反而是数据库的提示信息更加有使用价值。如下面的异常信息。这种异常一般根据后面的提示信息都能找到,如下面就是没有data这样的列名。

    11. ClassCastException:数据类型转换异常。在Java应用程序中,有时候需要对数据类型进行转换。这个转换包括显示的转换与隐式的转换。不过无论怎么转换,都必须要符合一个前提的条件,即数据类型的兼容性。如果在数据转换的过程中,违反了这个原则,那么就会触发数据类型转换异常。

    12. FileNotFoundException:文件没有找到异常是否添加权限,SD卡是否在可挂载状态;

    13. ConcurrentModificationException:并发修改异常
      常见于增强for循环中,删除集合中的数据。

    14. SecurityException: 安全异常
      一般是由权限问题引起的,比如读写短信以及访问网络等都需要在清单文件中添加访问权限,如果没有添加,有些则会在日志中打印出异常信息,有些则不会有任何提示。

    非常见异常

    1. NumberFormatException:数据格式化异常
      在数据类型转换过程中,如果是字符型转换为数字型过程中出现的问题,对于这个异常在Java程序中采用了一个独立的异常,即NumberFormatException.如现在讲字符型的数据“123456”转换为数值型数据时,是允许的。但是如果字符型数据中包含了非数字型的字符,如123#56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理。在json解析成对象的时候常见,如本来是float类型的数据,赋值给int类型就会出现上述异常;

    2. NoClassDefFoundError: 没有找到定义的类错误
      找不到的类,一般是由于添加的jar包有问题,在eclipse可以尝试点击fix properties,或者更换依赖的jar包。

    3. java.lang.ArithmeticException:数学运算异常  
      比如程序中出现了除以零这样的运算就会出这样的异常;

    相关文章

      网友评论

          本文标题:安卓和java常见异常总结

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