java中这些异常怎样才会出现

谁知道下列异常在什么情况下会发生:ArrayIndexOutOfBoundsException,ClassCastException,IllegalArgumentExc... 谁知道下列异常在什么情况下会发生: ArrayIndexOutOfBoundsException,ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError or NoClassDefFoundError.
知道上面哪些是由虚拟机抛出的,其他的在什么情况应该被程序抛出。
展开
 我来答
6522494
推荐于2017-09-04 · TA获得超过143个赞
知道答主
回答量:105
采纳率:0%
帮助的人:0
展开全部
异常:
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帮助都很详细,建议看一下
fengweizhi1985
2009-08-03 · TA获得超过524个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:223万
展开全部
异常:
ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
ClassCastException:当试图将对象强制转换为不是实例的子类时,抛出该异常
IllegalArgumentException:抛出的异常表明向方法传递了一个不合法或不正确的参数
IllegalStateException:在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。
NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:

调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。
应用程序应该抛出该类的实例,指示其他对 null 对象的非法使用。
NumberFormatException,:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
错误:
AssertionError:抛出该异常指示某个断言失败。
ExceptionInInitializerError:静态初始化程序中发生意外异常的信号。抛出 ExceptionInInitializerError 表明在计算静态初始值或静态变量的初始值期间发生异常。
StackOverflowError :当应用程序递归太深而发生堆栈溢出时,抛出该错误。 NoClassDefFoundError: 当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。
当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bellCliff
2009-08-03 · TA获得超过650个赞
知道小有建树答主
回答量:820
采纳率:0%
帮助的人:608万
展开全部
看名字,顾名思义基本可得,为什么会有这样的问题呢,建议看下javadoc,都有详细的解释

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/

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s1t84
2009-08-03
知道答主
回答量:10
采纳率:0%
帮助的人:4.1万
展开全部
看一下他们的继承结构就知道哪些是虚拟机抛出的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式