Java 异常处理机制(一)
来源:互联网 发布:淘宝找货神器 编辑:程序博客网 时间:2024/06/06 16:42
Java 异常处理(一)
1、try和catch语句
(1)try语句用于指明可能产生异常的代码段,而catch语句则紧跟try语句之后,用于捕捉异常,并进行相应的异常
处理。
int a;int b=0;int c=1;try{ a=c/b;}catch(ArithmeticException e){ System.out.println("算术异常处理!");}
(2)一个try语句可以匹配多个catch语句,系统会依照先后顺序依次对其进行处理。
警告:处理子类异常的catch语句必须位于父类异常catch语句之前,否则子类异常catch语句将无法响应。
比如:IOException和Exception就存在继承的关系
//下面的catch语句的层次关系是不可取的int a;int b=0;int c=1;try{ a=c/b;}catch(Exception e){ // 1 父类异常处理 System.out.println("异常处理!");}catch(ArithmeticException e){ //2 子类异常处理 System.out.println("算术异常处理!");}
(3) Java还提供多异常捕获功能,即一个catch语句捕捉多种的异常,不同异常之间以“|”隔开。
int a;int b=0;int c=1;try{ a=c/b;}catch(ArithmeticException|ClassCastException e){ System.out.println("异常处理!");}
2、finally语句
(1) 配合try{ ... }catch{ ... }使用,主要用于执行一些必要的语句(无论是否产生异常),例如:关闭数据库、
关闭数据流等操作,以释放宝贵的系统资源。
//下行可能产生异常,例如在D:/Java/命令行示例/a.txt文件不存在的情况下//FileInputStream 类 用于处理以文件为输入源的数据流 FileInputStream fin=new FileInputStream("D:/Java/命令行示例/a.txt"); try{ size=fin.available();//判断可读取的字节数 System.out.println("file size="+size); }catch(FileNotFoundException e){ System.out.println("File not found!"); throw e; }finally{ fin.close(); }
(2)即使try语句块要通过return语句退出,Java也会保证执行finally代码段。
3、throw语句和throws语句
(1)throw语句用于之处程序当前行存在的异常,其后面的代码将不予执行;
throws语句出现在方法头的后面,用于抛出方法可能会出现的异常给其调用者。
(2)两者都是“消极”的处理异常的方法,真正处理异常的是改方法的调用者。
class showFile{ void showInfo() throws IOException{ int size=0;//下行可能产生异常,例如在D:/Java/命令行示例/a.txt文件不存在的情况下//FileInputStream 类 用于处理以文件为输入源的数据流 FileInputStream fin=new FileInputStream("D:/Java/命令行示例/a.txt"); try{ size=fin.available();//判断可读取的字节数 System.out.println("file size="+size); }catch(FileNotFoundException e){ System.out.println("File not found!"); throw e; System.out.println("异常抛出后!");//这一句将不予执行 }finally{ fin.close(); } }}
0 0
- Java 异常处理机制(一)
- JAVA中的异常处理机制系列一
- 【Java-异常处理机制】Java异常分类及异常检查(一)
- 异常处理机制 --- 相遇篇 (一)
- java异常处理机制
- java异常处理机制
- java异常处理机制
- Java-异常处理机制
- java异常处理机制
- Java异常处理机制
- java 异常处理机制
- java异常处理机制
- Java异常处理机制
- Java异常处理机制
- JAVA异常处理机制
- Java异常处理机制
- Java异常处理机制
- Java异常处理机制
- hdu 1102 最小生成树 prim
- 你必须要坚信所有的程序都是有代码构成的!!!
- strlen的使用问题
- 用正则表达式爬取链接和标题
- 自定义UINavigationController的后退按钮标题
- Java 异常处理机制(一)
- yii2.0 Activeform表单部分组件使用方法
- 修改navigationItem.backBarButtonItem.title的值无效的解决办法
- URAL 1297 Palindrome (回文+中心扩展)
- [Leetcode]Binary Tree Right Side View(TAT)
- 实验室搭建mongodb集群准备工作
- 基于SAE服务器的微信JsSDK测试
- 数据库列名无效原因
- Otto与EventBus框架比较