安卓和java常见异常总结

常见异常

  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:数学运算异常  
    比如程序中出现了除以零这样的运算就会出这样的异常;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 9,820评论 1 44
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,514评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,850评论 19 139
  • 昨天单位做策划的女孩L,和我聊起她与男友的吵架?因刚到公司,频繁加班,小姑娘有点吃不消,和男友牢骚了几句,结果男友...
    遇见未知的猫阅读 3,942评论 0 1
  • 【课堂笔记】 1、投资看大势。当前,中国仍然是世界上增速最快的国家之一,在这宏观经济背景下,A股市场中肯定有一些好...
    一路凯哥阅读 1,238评论 0 0

友情链接更多精彩内容