JAVA异常与异常处理重点
2017-01-10 15:33
169 查看
JAVA异常与异常处理重点
捕获异常try-catch-finally
1、try
捕获异常的第一步是用try{…}选定捕获异常的范围,由try所限定的代码块中的语句在执行过程中可能会生成异常对象。Try语句不能单独存在,必须有后面的catch或finally语句。
2、catch
每个try代码块可以伴随一个或多个catch语句,用于处理try代码块中所生成的异常事件。catch语句只需要一个形式参数来指明它所能够捕获的异常类型,这个类必须是Throwable的子类,运行时系统通过参数值把被抛出的异常对象传递给catch块。
catch块中的代码用来对异常对象进行处理,与访问其它对象一样,可以访问一个异常对象的变量或调用它的方法。getMessage( )是类Throwable所提供的方法,用来得到有关异常事件的信息,类Throwable还提供了方法printStackTrace( )用来跟踪异常事件发生时执行堆栈的内容。
3.catch 语句的顺序:
捕获异常的顺序和catch语句的顺序有关,当捕获到一个异常时,剩下的catch语句就不再进行匹配。因此,在安排catch语句的顺序时,首先应该捕获最特殊的异常,然后再逐渐一般化。也就是一般先安排子类,再安排父类。
4.、finally
捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得在控制流转到程序的其它部分以前,能够对程序的状态作统一的管理。一般是用来关闭文件或释放其他的系统资源。虽然finally作为try-catch-finally结构的一部分,但在程序中是可选的,也就是说可以没有 finally语句。
如果存在finally语句,不论try块中是否发生了异常,是否执行过catch 语句,是否包含有break、continue、return或者throw语句,都必须执行finally块中所包含的语句。
此外,try-catch-finally可以嵌套。
throw 和 throws
语句抛出的异常:借助throw语句定义何种情况是产生了此种异常对应的错误。
声明抛出异常是在一个方法声明中的throws子句中指明的。
throws关键字
throws子句中同时可以指明多个异常之间由逗号隔开
在程序中生成异常类对象并抛出:
异常的抛出是通过throw语句来实现的。首先要生成异常对象,异常或者由虚拟机生成,或者由某些类的实例生成,也可以在程序中生成。
在方法中,抛出异常对象是通过throw语句实现的。
例如:
IOException e=new IOException();
throw e ;
又如:
public void set(int age) throws Exception {
if (age>0 && age<100)
this.age = age;
else
throw new Exception("IllegalAgeData");
}
[修饰符] 返回类型 方法名(参数表) throws 异常类名表
{
…
throw 异常对象;
…
}
一般这种抛出异常的语句被定义为在满足一定条件时执行,例如把throw语句放在if语句的if分支中,只有当条件得到满足,即用户定义的逻辑错误发生时才执行。
捕获异常try-catch-finally
1、try
捕获异常的第一步是用try{…}选定捕获异常的范围,由try所限定的代码块中的语句在执行过程中可能会生成异常对象。Try语句不能单独存在,必须有后面的catch或finally语句。
2、catch
每个try代码块可以伴随一个或多个catch语句,用于处理try代码块中所生成的异常事件。catch语句只需要一个形式参数来指明它所能够捕获的异常类型,这个类必须是Throwable的子类,运行时系统通过参数值把被抛出的异常对象传递给catch块。
catch块中的代码用来对异常对象进行处理,与访问其它对象一样,可以访问一个异常对象的变量或调用它的方法。getMessage( )是类Throwable所提供的方法,用来得到有关异常事件的信息,类Throwable还提供了方法printStackTrace( )用来跟踪异常事件发生时执行堆栈的内容。
3.catch 语句的顺序:
捕获异常的顺序和catch语句的顺序有关,当捕获到一个异常时,剩下的catch语句就不再进行匹配。因此,在安排catch语句的顺序时,首先应该捕获最特殊的异常,然后再逐渐一般化。也就是一般先安排子类,再安排父类。
4.、finally
捕获异常的最后一步是通过finally语句为异常处理提供一个统一的出口,使得在控制流转到程序的其它部分以前,能够对程序的状态作统一的管理。一般是用来关闭文件或释放其他的系统资源。虽然finally作为try-catch-finally结构的一部分,但在程序中是可选的,也就是说可以没有 finally语句。
如果存在finally语句,不论try块中是否发生了异常,是否执行过catch 语句,是否包含有break、continue、return或者throw语句,都必须执行finally块中所包含的语句。
此外,try-catch-finally可以嵌套。
throw 和 throws
语句抛出的异常:借助throw语句定义何种情况是产生了此种异常对应的错误。
声明抛出异常是在一个方法声明中的throws子句中指明的。
throws关键字
throws子句中同时可以指明多个异常之间由逗号隔开
在程序中生成异常类对象并抛出:
异常的抛出是通过throw语句来实现的。首先要生成异常对象,异常或者由虚拟机生成,或者由某些类的实例生成,也可以在程序中生成。
在方法中,抛出异常对象是通过throw语句实现的。
例如:
IOException e=new IOException();
throw e ;
又如:
public void set(int age) throws Exception {
if (age>0 && age<100)
this.age = age;
else
throw new Exception("IllegalAgeData");
}
[修饰符] 返回类型 方法名(参数表) throws 异常类名表
{
…
throw 异常对象;
…
}
一般这种抛出异常的语句被定义为在满足一定条件时执行,例如把throw语句放在if语句的if分支中,只有当条件得到满足,即用户定义的逻辑错误发生时才执行。
相关文章推荐
- java导入EXCLE时文件名中文乱码
- java构造器与方法的简单区分
- java实现聊天室
- java io流
- 关于Java堆栈的简单理解
- Java基本数据类型和引用数据类型
- java内存空间
- java基本字符输入相关总结
- java中Math的一些用法
- maven中添加json-lib-2.4-jdk15.jar包
- java中的random函数
- Java设计模式——动态代理dynamicProxy
- java中extends与implements的区别
- java中awt与swing的区别
- 关于java中Properties类的简单的使用例子
- 关于java中Properties类的简单的使用例子
- 关于java中Properties类的简单的使用例子
- 关于java中Properties类的简单的使用例子
- 关于java中Properties类的简单的使用例子
- 关于java中Properties类的简单的使用例子