javase基础复习攻略《四》
本篇内容重点介绍JAVA中的异常处理机制,什么是JAVA异常?JAVA异常是JAVA提供的用于处理程序中错误的一种机制。所谓错误就是指在程序的运行过程中出现的一些异常事件(如:0溢出,数组下表越界,所读取的文件不存在......)。
JAVA程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给JAVA运行时系统,这个过程被称为抛出(throw)异常。当JAVA运行时系统接收到异常对象时,会寻找能处理这一异常的代码,并把当前对象交给其处理,这个过程称为捕获(catch)异常。
JAVA SDK定义了很多异常,大致分为:Error——错误,由JAVA虚拟机生成并抛出,包括:动态链接失败、虚拟机错误,程序对其不做任何操作。Exception——所有异常类的父类,其子类对应这各种各样可能出现的异常事件,一般需要用户显式的声明和捕获。RuntimeException——运行时错误,一类特殊的异常,如被0除,数组下标越界等,这类异常产生比较频繁,处理麻烦,如果显式的声明和捕获将对程序的可读性和运行效率影响很大。因此由系统自动检测,并将他们交给缺省的异常处理程序(用户不必对其处理)。
1、异常的捕获和处理:
JAVA对异常的捕获和处理使用try和catch关键字。try代码段包含可能产生例外的代码;try代码段后跟一个或多个catch代码段;每个catch代码段声明其能处理的一种特定类型的异常,并提供处理方法;当异常发生时,程序会中止当前的流程,根据捕获的异常类型去执行相应的catch代码段;finally段的代码无论是否发生异常均会被处理。
2、异常的捕获和处理:
public class Test { /**
* @param 异常的捕获和处理
*/
private static FileInputStream input;
public static void main(String[] args) throws FileNotFoundException {
try {//捕获异常
input = new FileInputStream("test.java");
int a = input.read();
while(a!=-1){
System.out.println((char)a);
a = input.read();
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("系统出现异常");
}finally{
System.out.println("关闭程序");
}
}
}
对于异常的处理和捕获就为大家总结这些,如果大家有什么想法,欢迎留言补充,一起交流共同进步。
javase基础复习攻略《四》的更多相关文章
- javase基础复习攻略《一》
作为一名软件工程专业,JAVA开发方向的大三本科学生,有必要把自己的学到的专业知识进行一下整理,一则方便自己了解自己的学习程度,二则帮助刚刚接触这一门语言的童鞋了解学习,本人来自与河南理工大学,介绍完 ...
- javase基础复习攻略《十》
按照计划本篇为大家总结JAVA的网络编程,什么叫网络编程呢?网络编程!=网站编程,对于这一点大家一定要注意,很多小朋友都曾经这么认为.既然谈到网络编程,咱们先了解一下网络的基础知识,什么是计算机网络? ...
- javase基础复习攻略《二》
今天就开始的真正走进JAVASE的世界,本篇介绍的是:JAVASE基础语法,大家如果有C语言的基础,对于本节内容一定感觉非常轻松,编程语言之间的都是相通的,只不过C语言属于面向过程编程,而JAVA语言 ...
- javase基础复习攻略《三》
编程语言的发展: 机器语言——直接由计算机的指令组成,指令.地址.数据都是以"0"和"1"的符号串组成,可以被计算机直接执行. 汇编语言——用容易理解和记忆的符 ...
- javase基础复习攻略《九》
本篇将为大家总结JAVA中的线程机制,谈到线程,大家一定会问线程和进程有什么区别?刚接触进程时我也有这样的疑问,今天就为大家简单介绍一下进程和线程.进程(Process)是计算机中的程序关于某数据集合 ...
- javase基础复习攻略《八》
进入第八篇,我们开始讨论JAVA的IO初步.在JAVA程序中,对数据的输入\输出操作以"流"(stream)方式进行,J2SDK提供了各种各样的"流"类,用于获 ...
- javase基础复习攻略《五》
总结完JAVA的基础语法和面向对象思想后,今天为大家补充一下JAVA中的数组,数组是什么呢?大家是不是想到了集合,数组和集合有相似之处,集合中的数据无序,不可以重复.数组中则存放着具有相同特征的一组数 ...
- javase基础复习攻略《七》
容器是什么?通俗的讲容器指可以装其它东西的器皿,前面我们提到的数组便是容器的一种,容器的概念在JAVA中便可以理解为用来存储其它对象的器皿.本篇就让我们一起来认识一下JAVA为我们提供的容器类. 1. ...
- javase基础复习攻略《六》
学习JAVA的同学都知道,sun为我们封装了很多常用类,本篇就为大家总结一下我们经常使用的类.上一篇博客一位朋友留言问我String是不是引用数据类型?我通过查找资料发现String属于应用数据类型, ...
随机推荐
- javascript基础知识-数组
1.javascript创建数组时无需声明数组大小或者在数组大小变化时重新分配 2.javascript数组是无类型的 3.数组元素不一定要连续 4.针对稀疏数组,length比所有元素的索引都要大 ...
- 用cookie记住用户名
有时候,我们在做登陆框时会有个复选框选择请记住我,或者有时候会遇到一些弹出框说下次不再提醒,此功能我们可以用js中的cookie实现此功能 下面记录一下如何实现该功能: 利用cookie记录用户名 1 ...
- Java学习日记之 Java-其他类型
OK , 就绪, 第一篇博客开撸 ~ 先听了毕姥爷激情澎湃的其他类型 ,从这里开始入手吧 : (一)System类 System类代表系统类,系统的属性和方法都放在该类.System类是一个fina ...
- [转] How to change font settings for all UI elements (toolbar and context menus, property editors, etc.)
https://www.devexpress.com/Support/Center/Question/Details/S35762
- JavaScript + HTML 虚拟键盘效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 无线安全专题_攻击篇--MAC泛洪攻击
上一篇讲解了无线安全专题_攻击篇--干扰通信,没在首页待多长时间就被拿下了,看来之后不能只是讲解攻击实战,还要进行技术原理和防御方法的讲解.本篇讲解的是局域网内的MAC泛洪攻击,这种攻击方式主要目的是 ...
- 高效简易开发基于websocket 的通讯应用
websocket的主要是为了解决在web上应用长连接进行灵活的通讯应用而产生,但websocket本身只是一个基础协议,对于消息上还不算灵活,毕竟websocket只提供文本和二进制流这种基础数据格 ...
- sqlserver各备份解释
1)完全备份 ------------------------------------------- (1)是备份的基准.在做备份时第一次备份都建议使用完全备份. (2)完全备份会备份数据库的所有数据 ...
- EasyDarwin不能保存HLS列表的解决方案
官网: easydarwin.org 安装过程 http://doc.easydarwin.org/EasyDarwin/README/ 安装客户端,iVMS-4200 客户端,并运行. 在设备管理里 ...
- MySQL6:触发器
什么是触发器 MySQL的触发器(trigger)和存储过程一样,都是嵌入到MySQL中的一段程序.触发器是由事件来触发某个操作,这些事件包括INSERT.UPDATE和DELETE语句.如果定义了触 ...