Exception:异常,通常指的是程序运行期出现的错误。也就是说,java编程时出现的语法错误不在我们的考虑之列(实际上语法错误这种学期初期出现的问题在某些编程环境中是比较容易解决的,他总会给你提醒的,如eclipse)
异常的分类:
所有的Exception类都继承自java.lang.throwable类。实际上绝大多数Exception类都位于java.lang这个包,但也有一部分异常位于其他的包,如java.io.IOException等等。
Throwable类是所有Java 语言中所有错误或异常的超类(super)。它有2个很重要的子类:Error和 Exception。Exception下面又分2类,一种是特殊的RuntimeException,一种是其他的Exception。
Error类是系统错误类,可以简单的理解成JVM出错了,它定义了那些通常无法捕捉到的异常,通常我们程序员处理不了的,也不用处理。我们要谨慎使用和处理Error子类,因为它们通常会导致灾难性的失败。
Exception类是我们能处理的异常。我们可以catch它,可以处理它,也最好处理它。
RuntimeException类是我们写程序时经常出的错误。如什么IndexOutOfBoundsException ,NullPointerException等等 。这种异常我们可以catch它。
Exception类中的其他类,这类异常有一个特点,就是我们在写程序时必须catch它,否则系统不能完成编译。在API文档中,那些在方法中写了throws xxException的方法都是会抛出这种Exception对象的,都是必须catch的。这类异常包括IOException等等。
实际上我们不必拘泥于Java中已有的异常类型,因为Java提供的异常类库不可能包括实际应用中出现的所有问题,所以自己定义出现的异常类开处理特定问题是一种很有用的方法。自己定义异常类,必须从已有的异常类中继承。
当可能出现或出现异常了之后我们该怎么办?
<异常处理机制>:
Java提供给了我们一种处理程序错误(即异常事件)的机制。计算机语言中的异常处理理论上有两种基本模型,一种是终止模型,另一种是恢复模型,Java支持终止模型,但实际使用的时候可以通过将try块放到循环语句中,来最终得到恢复异常的作用。
Java程序在执行的过程中如果出现异常事件,可以自动生成一个异常类对象。该对象封装了出现的异常事件的信息并将它提交给Java的运行时系统,这个过程叫做抛出(throw)过程。
当Java运行系统接收到异常对象,会寻找能处理这异常的代码,并将当前异常交给它处理,这过程叫做捕获(catch)异常。
异常相关的关键字:
一共有5个3组,分别是throw,throws,try,catch,finally,其中try,catch,finally要一起用。
先说throws关键字:我的理解是,throws起异常说明作用,即同某种优雅的方式告知类方法使用者(可能是自己也可能是客户端程序员)该方法可能抛出的异常。它属于方法声明的一部分,紧跟着形参列表后面。每个方法可以抛出一个或几个不同的异常类。一个方法使用throws抛出了一个异常,说明该方法不会对出现的错误或者异常进行处理,而是将之抛向上一级,即调用这个方法的方法,包括main方法。如果在main方法中抛出了异常,通常是交由JVM来处理。throws关键字的使用如下:
public void someMethod( ) throws IOException{
System.out.println("抛出了一个IO异常");
throw new IOException( );
}
throw关键字:通过上面的例子代码我们可以看到throw语句的作用是抛出一个具体的Exception对象(而throws指抛出一个Exception类),这个对象通常封装了出现异常的具体信息。
try、catch、finally关键字: 这三个关键字要连在一起用,它们构成了java中的异常处理程序,其使用形式如下:
try{
//语句块
//包括可能出现异常的语句代码
}catch(Type1 id1){
//处理Type1类型的异常对象id1的语句代码
}catch(Type2 id2){
//处理Type1类型的异常对象id1的语句代码
}fianlly{
//语句块
//不论try语句块中是否出现异常,都必须执行
}
有例子可知,一个try语句块后面可以跟多个catch语句,不同的catch语句处理可能抛出的不同异常。当try块中某个语句出现了异常时,程序自动跳到捕获该异常的catch对象,而不论try语句块是否执行完毕。一旦catch子句结束,则处理程序的查找过程也就结束。注意:只有与出现错误相匹配的catch子句才能得到执行,这与switch语句不同,switch语句需要在每个case子句最后加上一个break,来避免执行后面的case子句。
当涉及break和continue语句的时候,finally子句也会得到执行。
分享到:
相关推荐
有2个文件有main(),其中一个是多线程的一条线一条线的读取,另一个是一个点一个点的读取,比较慢 博文链接:https://263796001-qq-com.iteye.com/blog/991351
"IO-Link——智慧的通信技术" IO-Link是一种智能的通信技术,主要应用于工业自动化领域。它是一种串行数字通信协议,用于与传感器和执行器进行通信。IO-Link技术可以简化工业控制领域的底层设备连接,提供大量的...
### JAVA IO操作总结——节点流和处理流 #### 一、概述 在Java中,输入/输出(Input/Output,简称IO)操作是一项非常重要的功能,它涉及到如何从不同的源读取数据以及如何向不同的目的地写入数据。Java IO体系主要...
总结起来,"嵌入式实验2 单片机IO口——汽车灯光控制器"是一个结合理论与实践的学习项目,旨在教会学生如何使用单片机的IO端口控制外部设备,特别是模拟汽车灯光的控制。通过这个实验,参与者不仅可以掌握单片机的...
3. **异常处理**:JAVA提供了一种结构化的异常处理机制,学习笔记会解释何时及如何使用try-catch-finally语句块,以及不同类型的异常类。 4. **内存管理与垃圾回收**:JAVA的自动内存管理是通过垃圾回收机制实现的...
【Java学习笔记——全面解析】 Java作为一种广泛应用的高级编程语言,是软件开发领域的核心力量。这份"学习笔记——资料"涵盖了Java学习的各个方面,旨在帮助初学者和有经验的开发者巩固基础,提升技能。以下是对这...
本文将深入探讨“嵌入式实验1:单片机IO口——流水灯”的相关知识点,旨在帮助初学者理解单片机的输入/输出(IO)口操作及其在实际应用中的体现。 首先,我们需要了解什么是单片机。单片机,又称为微控制器,是一种...
树结构 draw.io图 二叉树、顺序树、树的链式存储结构、树的数组存储结构、欧拉树 绘图软件为免费开源软件draw.io
"Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...
java IO流学习笔记——(1) IO流总述 • 输入流:数据源到程序(InputStream、Reader读进来) • 输出流:程序到目的地(OutputStream、Writer写出去) 流分类 : • 节点流:可以直接从数据源或目的地读写数据 • 处理...
通过"Java JDK 6学习笔记——ppt简体版",学习者可以系统地学习到如何使用JDK 6进行开发,包括环境配置、基本语法、类库使用、异常处理、IO流、网络编程、多线程等各个方面。PPT格式通常直观易懂,便于快速理解和...
本文主要关注的是流式IO,这是Java中最常见的I/O操作方式。 流式IO是Java中处理输入输出的基本机制,它通过构建输入流和输出流,将数据从一个源头(如文件、网络连接等)读取,并输出到目的地(如屏幕、文件等)。...
标题中的"IO——test"显然指的是与输入/输出(Input/Output,简称IO)相关的测试。...以上就是基于标题、标签和文件名推测的IO相关知识点,具体的学习内容和实践案例还需要参考提供的链接和解压后的文件内容。
此外,JDK 6还包含了丰富的API,如集合框架(List、Set、Map等),IO流,网络编程,多线程,异常处理等。集合框架的使用极大地提高了代码的可维护性和复用性,而多线程编程则让Java能够充分利用多核处理器的优势,...
在Linux操作系统中,标准输入/输出(Standard Input/Output,简称标准IO)是系统提供的一种基本I/O模型,用于程序与外部设备之间的数据传输。在这个案例中,我们关注的是如何利用标准IO进行学生信息的管理。`ls_stu....
Java JDK 6学习笔记——PPT简体版是针对初学者和有经验的开发者们的一份宝贵资源,它深入浅出地介绍了Java编程语言的核心概念和技术。这份资料以PPT的形式呈现,使得学习过程更加直观易懂,同时包含了课程中的源代码...
在Python中,IO流(Input/Output Stream)是指进行数据输入和输出操作的过程,通常涉及内存与外部存储设备(如磁盘)之间的交互。这些操作是持久性的,意味着它们能够将数据保存在硬盘上,以便后续访问或处理。...
**JDK 6学习笔记——PPT简体版** Java Development Kit(JDK)是Java编程语言的核心组件,它提供了开发和运行Java应用程序所需的工具和环境。JDK 6是Oracle公司发布的一个重要版本,为开发者带来了许多改进和新特性...