异常处理(006)_常见的Java异常有哪些(运行时)

转载 2016年08月31日 11:20:11

1、常见的java运行时异常有哪些

了解运行时异常看这里:什么是java中的异常 
常见的非运行时异常看这里:[常见的非运行时异常有哪些][3] 
[3]:

我们所说的java常见异常是指jdk或者其他常用第三方jar中,出现频次很高的异常。常见的运行时异常(RuntimeException)包括: 
空指针异常类:NullPointerException 
数组下标越界异常:ArrayIndexOutOfBoundsException 
数组负长度异常:NegativeArraySizeException 
数组存储异常:ArrayStoreException 
算术异常类:ArithmeticException

非法参数异常:IllegalArgumentException 
类型强制转换异常:ClassCastException 
枚举常量不存在异常:EnumConstantNotPresentException 
数字转换异常:NumberFormatException 
无效的状态异常:IllegalStateException

无效的监控状态异常:IllegalMonitorStateException 
无效的线程状态异常:IllegalThreadStateException

2、什么情况下会抛出这些异常

如何抛出异常看这里:如何抛出异常

  1. java.lang.NullPointerException 
    这个异常大家肯定都经常遇到,异常的解释是:程序遇上了空指针。简单地说就是调用了未经初始化的对象或者是不存在的对象。 
    这个错误经常出现在操作方法返回值、调用数组这些操作中等等。 
    一般在调用他人有可能返回null的方法时,对null进行了后续操作,会抛出该异常,这里应该首先进行null判断然后再进行后续操作。 
    对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要 的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)

  2. java.lang.ArrayIndexOutOfBoundsException 
    这个异常相信很多朋友也经常遇到过,异常的解释是:数组下标越界(这里的数组包括各类集合,如List等)。 
    现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看调用的下标是不是超出了数组的范围。再通过下标获取数组值之前,最好先查看一下数组的length,以免出现这个异常。 
    另外,如果传入的下标为负数,也会出现这个异常。

  3. java.lang.NegativeArraySizeException 
    该异常的解释是:数组长度为负值异常。 
    当使用负数作为数组长度创建数组时抛出该异常。 
    在创建数组之前,一定要确保数组长度非负,尤其是隐式创建(数组长度为变量)。

  4. java.lang.ArrayStoreException 
    该异常的解释是:数组存储异常。 
    当向数组中存放非数组声明类型对象时抛出。 
    在为数组赋值时,一定要注意类型的一致。

  5. java.lang.ArithmeticException 
    该异常的解释是:数学运算异常。 
    比如程序中出现了除以零这样的运算就会出这样的异常。对这种异常,大家只要好好检查一下自己程序中涉及到数学运算的地方,就能够解决。

  6. java.lang.IllegalArgumentException 
    该异常的解释是:非法参数异常。 
    很 多java或者第三方类库中的方法在某情况下都会引发这样的错误。比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的则会出现这个异常。一旦发现这个异常,我们要赶紧去检查一下方法调用中的参数传递是不是出现了错误。

  7. java.lang.ClassCastException 
    该异常的解释是:强制类型转换异常。 
    假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。 
    一般会在类型强制转换时出现,我们一定要梳理好继承关系采取强转即可避免。

  8. java.lang.EnumConstantNotPresentException 
    该异常的解释是:枚举常量不存在异常。 
    当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常。 
    定义和使用枚举类型时需要小心。

  9. java.lang.NumberFormatException 
    该异常的解释是:数字转换异常。该异常继承于IllegalArgumentException。 
    当将字符串转换为数字时,若格式错误则转换失败,抛出该异常。例如将”abc”抓换为整型即会抛出该异常。 
    我们在做数字转换时一定要注意。

  10. java.lang.IllegalStateException 
    该异常的解释是:无效的状态异常。 
    当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。 
    例如在程序中两次调用了response.sendRedirect()方法,就会抛出该异常。

  11. java.lang.IllegalMonitorStateException 
    该异常的解释是:无效的监控状态异常。 
    当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。 
    异常的发生是由于程序员没有注意notify(),notifyAll(),wait()方法的使用条件,没有真正理解线程同步机制。如果当前的线程不是此对象锁的所有者,却调用该对象的notify(),notifyAll(),wait()方法时抛出该异常。

  12. java.lang.IllegalThreadStateException 
    该异常的解释是:无效的线程状态异常。该异常继承于IllegalArgumentException。 
    当线程尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常。 
    当对一个已经死亡的线程调用start,sleep之类的操作,会抛出该异常。

异常处理(007)_常见的java异常有哪些(非运行时)

1、常见的java运行时异常有哪些 了解非运行时异常看这里:什么是java中的异常  常见的运行时异常看这里:常见的运行时异常有哪些 我们所说的常见异常是jdk或者其他常用第三方jar中...
  • xuyukun121
  • xuyukun121
  • 2016年08月31日 11:29
  • 711

Java编程中 常见的异常有哪几种 ??

1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经...
  • Vampire_Vang
  • Vampire_Vang
  • 2017年07月27日 16:50
  • 97

Java千百问_04异常处理(006)_常见的Java异常有哪些(运行时)

1、常见的java运行时异常有哪些了解运行时异常看这里:什么是java中的异常 常见的非运行时异常看这里:[常见的非运行时异常有哪些][3] [3]:我们所说的java常见异常是指jdk或者其他常...
  • ooppookid
  • ooppookid
  • 2016年06月14日 20:51
  • 2292

Java运行时异常和非运行时异常

1.Java异常机制 Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java...
  • huhui_bj
  • huhui_bj
  • 2014年08月25日 11:19
  • 26618

java 受检异常和非受检异常

总是记不住什么是受检异常,什么是非受检异常,有时甚至弄混淆,特此简单记录以便复习之用。 异常的分类: java.lang.Throwable 1.Error错误:JVM内部的严重问题。无...
  • j754379117
  • j754379117
  • 2014年12月16日 20:46
  • 4270

java中常见的几种异常

算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:N...
  • taijianyu
  • taijianyu
  • 2013年09月13日 11:24
  • 12548

Java异常详解

Java中的异常就是那些会阻碍当前程序运行,使程序执行可能失败的一些可能情况,如程序中出现除零错误,数组下标越界等。异常在Java中被封装成了一个类,继承自`Throwable`,名为`Excepti...
  • Decting
  • Decting
  • 2015年08月06日 16:00
  • 2363

列出一些你常见的运行时异常(非检查异常)?

-ArithmeticException(算术异常)  - ClassCastException (类转换异常)  - IllegalArgumentException (非法参数异常)  - ...
  • u014136713
  • u014136713
  • 2016年05月13日 18:06
  • 1049

java 的异常有几种类型

未检查异常和已检查异常 所有派生自Error和RuntimeException的类,都是未检查异常.其余的是已检查异常. 未检查异常意思就是说,编译器不会检查程序是否抛出异常,换句话说,程...
  • davidwma
  • davidwma
  • 2017年05月15日 18:17
  • 708

关于spring下自定义异常处理的功能

问题:本周在把现有项目整合shiro,问题是前端使用的是angularjs,如果对于单个的Controller,失败后可以直接在代码块中做try-catch来捕获异常,进而返回给页面或者是ajax的请...
  • u010955892
  • u010955892
  • 2017年07月05日 16:11
  • 383
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:异常处理(006)_常见的Java异常有哪些(运行时)
举报原因:
原因补充:

(最多只允许输入30个字)