try catch finally throw throws
来源:互联网 发布:数据库关系模型示例 编辑:程序博客网 时间:2024/04/25 16:18
try语句
try语句块中可能会抛出异常
catch语句
catch语句的参数必须为throwable的子类,它指明了catch所处理的异常类型,而此异常是运行时在try语句块中生成并捕获的。大括号中可以处理此异常对象。
此外,catch语句可以有多个,分别处理不同的异常,Java运行时系统从上到下分别对每个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止。这里,类型匹配指catch所处理的例外类型与生成的例外对象的类型完全一致或者是它的父类,因此,catch语句的排列顺序应该是从特殊到一般。
也可以用一个catch语句处理多个例外类型,这时它的例外类型参数应该是这多个例外类型的父类,程序设计中要根据具体的情况来选择catch语句的例外处理类型。
finally语句
try语句块中,当抛出一个异常时,其后的代码将不会被执行到(throw后面的代码将不会被执行),这时可以通过finally语句来制定一段代码,无论try所制定的语句块中是否抛出异常,也无论所抛出的异常是否与catch中的一致,finally中的代码一定会被执行。
throws语句
throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。如果异常的类型是Error或 RuntimeException, 或它们的子类,这个规则不起作用, 因为这在程序的正常部分中是不期待出现的。 如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型。
throw语句
throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。
由于throw与throws容易混淆,下面对比二者区别:
第一
throws 声明在方法头部
throw用于方法体内部
第二
throws后面是方法可能会抛出的异常类型
throw后面一定是某个异常类型的实例
第三
throws后面可以声明多个一场类型,用逗号隔开
第四
两种都是异常的消极处理方式,不好处理异常,异常的处理交给其调用者处理
第五
重要的一点,throw不可以单独使用,可以与try catch finally或者throws配套使用
而throws当然可以单独使用
小例子:
package test;public class TestException {public static void main(String args[]) {int a = -1;try {Age age = new Age();age.testAge(a);// 触发异常System.out.println("throw 之后的代码"); // 此行代码将不被执行,因为执行了throw} catch (MyException ex) {System.out.println(ex.toString());} finally { // 无论是否抛出异常,无论catch语句的异常类型是否与抛出的异常类型一致,finally都要执行System.out.println("finally 被执行");}}}class MyException extends Exception {String msg;MyException(int age) {msg = "error age !";}public String toString() {return msg;}}class Age {public void testAge(int n) throws MyException {if (n < 0 || n > 150) {MyException e = new MyException(n);throw e;// throw后面的代码将不被执行} else {System.out.println("allowed age!");}}}
参考文章:http://liqita.iteye.com/blog/1236362
- try catch finally throw throws
- try throw throws catch finally区别
- 异常机制 :try、catch、 finally 、throw 、throws
- throws,throw,try,catch,finally的含义
- java try/catch/finally 以及throw throws 代码详细分析
- Java.异常:自定义异常类,throw,throws,try...catch,finally
- try...catch...finally;throw与throws关键字联合使用
- Java异常机制try、catch、finally、throw、throws五个关键字。
- java中的异常(exception)&&try,catch,finally throw&&throws
- java异常处理:try、catch、throw、throws和finally
- java异常-Error和Exception;try,catch,throw,throws,finally
- Android异常处理——try、catch、finally、throw、throws
- try catch finally throw throws异常捕获和抛出demo
- android异常处理——try、catch、finally、throw、throws
- Java异常处理throws,throw关键字try,catch,finally模块
- Android异常处理——try、catch、finally、throw、throws
- throw与throws的区别,另记录try,catch,finally
- Java异常之try,catch,finally,throw,throws
- Linux下TCP参数配置
- 让Visual Studio 也支持JS代码折叠 [ Visual Studio | #region | #endregion ]
- oracle导出excel 方法总结
- Linux学习:第三章-Linux常用命令-2
- HAL层开发基础
- try catch finally throw throws
- 项目优化经验分享(七)敏捷开发
- 局部敏感哈希(Locality-Sensitive Hashing) LSH
- js中取得当前加载的js的src地址
- POWERPCB和PROTEL文件格式的相互转换
- 虚基类、虚函数和纯虚基类
- #pragma 的用法
- Android - 小功能 - 利用最新版ShareSDK进行手动分享(自定义分享界面)
- Lucene StandardAnalyzer的代码分析2