java中这些异常怎样才会出现
谁知道下列异常在什么情况下会发生:ArrayIndexOutOfBoundsException,ClassCastException,IllegalArgumentExc...
谁知道下列异常在什么情况下会发生: ArrayIndexOutOfBoundsException,ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError or NoClassDefFoundError.
知道上面哪些是由虚拟机抛出的,其他的在什么情况应该被程序抛出。 展开
知道上面哪些是由虚拟机抛出的,其他的在什么情况应该被程序抛出。 展开
4个回答
展开全部
异常:
ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
ClassCastException:当试图将对象强制转换为不是实例的子类时,抛出该异常
IllegalArgumentException:抛出的异常表明向方法传递了一个不合法或不正确的参数
IllegalStateException:在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。
NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
NumberFormatException,:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
错误:
AssertionError:抛出该异常指示某个断言失败。
ExceptionInInitializerError:静态初始化程序中发生意外异常的信号。抛出 ExceptionInInitializerError 表明在计算静态初始值或静态变量的初始值期间发生异常。
StackOverflowError :当应用程序递归太深而发生堆栈溢出时,抛出该错误。 NoClassDefFoundError: 当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。
当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
-------------------
JDK帮助都很详细,建议看一下
ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
ClassCastException:当试图将对象强制转换为不是实例的子类时,抛出该异常
IllegalArgumentException:抛出的异常表明向方法传递了一个不合法或不正确的参数
IllegalStateException:在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。
NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
NumberFormatException,:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
错误:
AssertionError:抛出该异常指示某个断言失败。
ExceptionInInitializerError:静态初始化程序中发生意外异常的信号。抛出 ExceptionInInitializerError 表明在计算静态初始值或静态变量的初始值期间发生异常。
StackOverflowError :当应用程序递归太深而发生堆栈溢出时,抛出该错误。 NoClassDefFoundError: 当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。
当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
-------------------
JDK帮助都很详细,建议看一下
展开全部
异常:
ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
ClassCastException:当试图将对象强制转换为不是实例的子类时,抛出该异常
IllegalArgumentException:抛出的异常表明向方法传递了一个不合法或不正确的参数
IllegalStateException:在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。
NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
NumberFormatException,:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
错误:
AssertionError:抛出该异常指示某个断言失败。
ExceptionInInitializerError:静态初始化程序中发生意外异常的信号。抛出 ExceptionInInitializerError 表明在计算静态初始值或静态变量的初始值期间发生异常。
StackOverflowError :当应用程序递归太深而发生堆栈溢出时,抛出该错误。 NoClassDefFoundError: 当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。
当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
ClassCastException:当试图将对象强制转换为不是实例的子类时,抛出该异常
IllegalArgumentException:抛出的异常表明向方法传递了一个不合法或不正确的参数
IllegalStateException:在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。
NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
NumberFormatException,:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
错误:
AssertionError:抛出该异常指示某个断言失败。
ExceptionInInitializerError:静态初始化程序中发生意外异常的信号。抛出 ExceptionInInitializerError 表明在计算静态初始值或静态变量的初始值期间发生异常。
StackOverflowError :当应用程序递归太深而发生堆栈溢出时,抛出该错误。 NoClassDefFoundError: 当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。
当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看名字,顾名思义基本可得,为什么会有这样的问题呢,建议看下javadoc,都有详细的解释
ArrayIndexOutOfBoundsException 取串时,超出边界,如:System.out.println("test".charAt(5));
ClassCastException 强制类转换出错,如:
Object o = new Object();
System.out.println((Test)o);
ArrayIndexOutOfBoundsException 取串时,超出边界,如:System.out.println("test".charAt(5));
ClassCastException 强制类转换出错,如:
Object o = new Object();
System.out.println((Test)o);
参考资料: http://java.sun.com/j2se/1.4.2/docs/api/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看一下他们的继承结构就知道哪些是虚拟机抛出的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询