分析析JAVA中常见异常与原因

1.异常: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck

   解决:这种错误解决比较容易!
          一般都是一开始就初始化了,之后就没有做过插入操作。java.util.List listObj = new java.util.ArrayList();这样的话,当你执行listObj.get(index)的时候就 会抛上面的异常。习惯的写法,一般都是java.util.List listObj = null; 或加一个判断if(!listObj.isEmpty()){listObj.get(index);}.


2. SQLException:操作数据库异常类

当Java应用程序与数据库进行沟通时如果产生了错误,就会触发这个类

如现在用户往系统中插入数据,而在数据库中规定某个字段必须唯一。当用户插入数据的时候,如果这个字段的值跟现有的纪录重复了,违反了数据库的唯一性约束,此时数据库就会跑出一个异常信息。

所有此时Java应用程序本身的提示信息往往过于笼统,只是说与数据库交互出现错误,没有多大的参考价值。此时反而是数据库的提示信息更加有使用价值。


3.ClassCastException:数据类型转换异常。

需要对数据类型进行转换。这个转换包括显示的转换与隐式的转换

如用户在输入日期的时候只输入月、日信息,而没有年份的信息。此时应用程序在进行数据类型转换的时候,就会出现异常。


4. NumberFormatException:字符串转换为数字类型时抛出的异常。

如现在讲字符型的数据“123456”转换为数值型数据时,是允许的。但是如果字符型数据中包含了非数字型的字符,如123#56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理。


5.Java应用程序中常见的异常类还有很多。如未找到相应类异常、不允许访问某些类异常、文件已经结束异常、文件未找到异常、字段未找到异常等等

开发人员在必要的时候(特别是存在自定义异常的时候),最后手头有一份异常明细表可以及时的根据异常名字来找到异常发生的原因。

6.常用异常:


  UnsupportedOperationException不支持的操作
  IllegalArgumentException非法参数
  IndexOutOfBoundsException索引出界
  IllegalStateException非法状态
        ArithmeticException(除数为0的异常),
         BufferOverflowException(缓冲区上溢异常),
         BufferUnderflowException(缓冲区下溢异常),
      IndexOutOfBoundsException(出界异常),
         NullPointerException(空指针异常),
         EmptyStackException(空栈异常),
      IllegalArgumentException(不合法的参数异常),
      NegativeArraySizeException,
    NoSuchElementException,
    SecurityException,
    SystemException,
    UndeclaredThrowableException
    
    1. java.lang.NullPointerException
  异常的解释是"程序遇上了空指针",
    简单地说就是调用了未经初始化的对象或者是不存在的对象,
    即把数组的初始化和数组元素的初始化混淆起来了。
        数组的初始化是对数组分配需要的空间,而初始化后的数组,
        其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)
  2. java.lang.ClassNotFoundException  
        异常的解释是"指定的类不存在"。
  3. java.lang.ArithmeticException  
        这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常。
  4. java.lang.ArrayIndexOutOfBoundsException
  异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,
    看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,
    但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,
    不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。
  5. java.lang.IllegalArgumentException
  这个异常的解释是"方法的参数错误",比如g.setColor(int red,int green,int blue)这个方法中的三个值,
    如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。
  6. java.lang.IllegalAccessException
  这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常

7.Unresolved compilation problem  程序编译问题

8.java.lang.UnsupportedClassVersionError  错误的原因,是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值