这篇文章主要讲解了“Java throw语句异常怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java throw语句异常怎么处理”吧!
所有的方法都使用“throw”语句来抛出一个异常。Throw语句需要一个单独throwable对象,这个对象是任意Throwable类的子类。如下类所示:
throw someThrowableObject;
让我们在程序的上下文中来看一下throw语句。下面的pop方法把来自于一个公共堆栈中的一个执行类给删除。这个方法从堆栈上面的元素,并且返回被删除的对象。
public Object pop() throws EmptyStackException {
Object obj;
if (size == 0) {
throw new EmptyStackException();
}
obj = objectAt(SIZE - 1);
setObjectAt(SIZE - 1, null);
size--;
return obj;
}
pop方法检查堆栈上是否有元素。如果堆栈是空的(也就是说它的尺寸等于0),pop方法就会实例化一个新的EmptyStackException对象(它是java.util中的一个成员),并且抛出它。在这章的后面一节会解释怎样创建自己的异常类。对于现在,你所需要记住的是你只能抛出继承于java.lang.Throwable类的对象。
注意,pop方法的声明中包含了一个throws子句。EmptyStackException是一个检查性异常,并且pop方法没有捕捉这个异常。因此,这个方法必须使用throws子名来声明它所抛出的异常的类型。
Throwable 类和它的子类
继承Throwable类的对象包括直接子类(直接继承于Throwable类的对象)和间接子类(继承于Throwable类的子类的对象)。下图说明了Throwable类的层次关系和最主要的一些子类。象你看到的一样,Throws有两个直接的子类:Error类和Exception类。
Error类
当在Java虚拟机中发生动态连接失败或其它的定位失败的时候,Java虚拟机抛出一个Error对象。典型的简易程序不捕获或抛出Errors对象。
Exception类
大多数程序都抛出或捕获衍生于Exception类的对象。一个异常表明发生了一个问题,但它不是严重的系统问题。你编定的大多数程序将会抛出或捕获Exceptions对象(而不是Errors对象)。
在Java平台中Exception类有许多已经定义了的子类。这些子类说明所发生的异常的各种类型。例如,IllegalAccessException异常类说明了不能找到一个特殊的方法;NegativeArraySizeException异常类说明程序试图创建一个带有负尺寸的数组。
有一个特殊的Exception子类:RuntimeException。这个子类是在程序运行期间在Java虚拟机内部所发生的异常。例如NullPointerException类就是一个运行时异常类,在一个方法试图通过一个null引用来访问一个对象的成员时会发生这个异常。在Unchecked Exceptions---The Controversy这一节中,我们会讨论为什么典型的程序不应该抛出运行时异常或RuntimException类的子类异常对象。
感谢各位的阅读,以上就是“Java throw语句异常怎么处理”的内容了,经过本文的学习后,相信大家对Java throw语句异常怎么处理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!