清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第10章 例外处理

第10章 例外丛理 例外处理入门 受检丶执行时期例外 throw、 throws 例外的继承架构
第10章 • 例外处理 – 例外处理入门 – 受检、执行时期例外 – throw、throws – 例外的继承架构

例外处理入门 想尝试捕捉例外,可以使用"try"、" catch" " final!y"三个尖键词组合的语法来达到 try i //陈句 catch(例外型态名称){ //例外处理 finally i //一定会处理的区块
例外处理入门 • 想尝试捕捉例外,可以使用"try"、"catch"、 "finally"三个关键词组合的语法来达到 try { //陈述句 } catch(例外型态 名称) { //例外处理 } finally { //一定会处理的区块 }

例外处理入门 public class checkArgs Demo i public static void main(string[] args)[ try i System.out. printf("执行号s功能器n",args[01); catch (Array IndexOutofBoundsException e) System.out. println("没有指定自变量"); e printstackTrace()i
例外处理入门 public class CheckArgsDemo { public static void main(String[] args) { try { System.out.printf("执行%s功能%n", args[0]); } catch(ArrayIndexOutOfBoundsException e) { System.out.println("没有指定自变量"); e.printStackTrace(); } } }

例外处理入门 例外处理最好只用于错误处理,而不应是 用于程序业务逻辑的一部份,因为例外的 产生要消耗瓷源
例外处理入门 • 例外处理最好只用于错误处理,而不应是 用于程序业务逻辑的一部份,因为例外的 产生要消耗资源

例外处理入 以下应用例外处理的方式就不适当 while(true) try t System. out. println(args[i])i +; catch(ArrayIndexOutofBounds Exception e)t 下面的方式才是正确的 for(int i=0; i< args. length i++) System. out. println(args[i])i
例外处理入门 • 以下应用例外处理的方式就不适当 • 下面的方式才是正确的 while(true) { try { System.out.println(args[i]); i++; } catch(ArrayIndexOutOfBoundsException e) { // .... } } for(int i = 0; i < args.length; i++) { System.out.println(args[i]); }

受检例外、执行时期例外 在某些情况下例外的发生是可预期的 例如使用输入输出功能 ·错误是可预期发生的这类例外称之为「受 检例外」( Checked Exception) 受检例外编译程序会要求您进行例外处理 在使用 java. Io. Buffered Reader的 BreadLine方 法取得使用者输人时’编译程序会要求您于程 序代码中明确告知如何处理 java. io IOEXception
受检例外、执行时期例外 • 在某些情况下例外的发生是可预期的 – 例如使用输入输出功能 • 错误是可预期发生的这类例外称之为「受 检例外」(Checked Exception) • 受检例外编译程序会要求您进行例外处理 – 在使用java.io.BufferedReader的readLine()方 法取得使用者输入时,编译程序会要求您于程 序代码中明确告知如何处理 java.io.IOException

受检例外、执行时期例外 如果您不在程序中处理的话,例如捋 EXCeption的" catch"区块拿掉 CheckedExceptionDemo. java: 9: unreported exception java. io IOException; must be caught or declared to be thrown
受检例外、执行时期例外 • 如果您不在程序中处理的话,例如将 IOException的"catch"区块拿掉 CheckedExceptionDemo.java:9: unreported exception java.io.IOException; must be caught or declared to be thrown

受检例外、执行时期例外 try i Bufferedreader buf new BufferedReader( new Input streamReader(System. in))i System.out, print("请输入整數:"); int input Integer parseInt(buf readline())i System. out. println(input x 10 ="+(input*10))i catch(IOException e) i / Checked Exception System.out. println("I/o错誤"); catch(NumberFormatException e)i // Runtime Exception System.out. println("输入必须为整數");
受检例外、执行时期例外 try { BufferedReader buf = new BufferedReader( new InputStreamReader(System.in)); System.out.print("请输入整數: "); int input = Integer.parseInt(buf.readLine()); System.out.println("input x 10 = " + (input*10)); } catch(IOException e) { // Checked Exception System.out.println("I/O错誤"); } catch(NumberFormatException e) { // Runtime Exception System.out.println("输入必须为整數"); }

受检例外、执行时期例外 像 Number FortmatEXception例外是「执行 时期例外」( Runtime exception) 例外是发生在程序执行期间,并不一定可 预期它的发生,编译程序不要求您一定要 处理 对于执行时期例外若没有处理,则例外会 直往外丢,最后由小VM来处理例外, JVM所作的就是显示例外堆栈讯息
受检例外、执行时期例外 • 像NumberFortmatException例外是「执行 时期例外」(Runtime exception) • 例外是发生在程序执行期间,并不一定可 预期它的发生,编译程序不要求您一定要 处理 • 对于执行时期例外若没有处理,则例外会 一直往外丢,最后由JVM来处理例外, JVM所作的就是显示例外堆栈讯息

throw、 throws 想要自行丟出例外,可以使用" throw"天键 词,并生成指定的例外对象 try i double data =100/0.0; System.out. println("浮点数零除:"+data); if(string valueof (data).equals("Infinity)) throw new ArithmeticException("除零例外") catch(ArithmeticException e) System. out. println(e)
throw、throws • 想要自行丢出例外,可以使用"throw"关键 词,并生成指定的例外对象 try { double data = 100 / 0.0; System.out.println("浮点数零除:" + data); if(String.valueOf(data).equals("Infinity")) throw new ArithmeticException("除零例外"); } catch(ArithmeticException e) { System.out.println(e); }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第9章 管理类别档案.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第8章 继承、多型.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第7章 封装.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第6章 字串.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第5章 数组.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第4章 从autoboxing、unboxing认识对象.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第3章 语法入门.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第2章 入门准备.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第1章 了解Java.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第1章 oracle数据库概述.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第16章 基于Oracle数据库的应用开发.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第15章 PLSQL程序设计.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第14章 SQL语言基础.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第13章 网络管理.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第12章 数据库备份与恢复.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第11章 安全管理.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第10章 模式对象.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第9章 数据库的启动与关闭.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第8章 数据库实例与操作模式.ppt
- 《Oracle数据库基础教程》教学资源(PPT课件讲稿)第7章 逻辑存储结构.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第11章 枚举类型.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第12章 泛型(Generics).ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第13章 对象容器.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第14章 输入、输出.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第15章 线程.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第16章 反射.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第17章 Annotation.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第18章 舍遗补缺.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第19章 文本编辑器.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第20章 JDBC入门.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第21章 Java SE6新功能简介.ppt
- 《C语言程序设计》课程教学资源(PPT课件)PPT课件 第五章 数组.ppt
- 南开大学:《上机试习题集—二级C语言程序设计》PDF电子书(编程和改错各100例).pdf
- 《Flash动画设计教程》PPT教学课件(共五章).ppt
- 陕西科学技术出版社:《计算机基础实用教程》PDF电子书(共六章).pdf
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 系统设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论(主讲:郑莉).ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十章 C++标准模板库.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入/输出.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt