版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中兴软件技术(南昌)培训中心中兴软件技术(南昌)培训中心了解异常的产生原理。掌握异常处理语句的基本格式。掌握throw和throws关键字的作用。可以自定义异常。了解Exception与RuntimeException的区别。了解断言的作用。中兴软件技术(南昌)培训中心 异常是导致程序中断运行的一种指令流导致程序中断运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失,所以在程序的设计中必须要考虑各种异常的发生,并正确的做好相应的处理,这样才能保证程序正常的执行。 中兴软件技术(南昌)培训中心public class ExceptionDemo01 publ
2、ic static void main(String args)System.out.println(* 计算开始 *) ;int i = 10 ;/ 定义整型变量int j = 0 ;/ 定义整型变量int temp = i / j ;/ 此处会产生异常System.out.println(两个数字相除结果:+temp) ;System.out.println(* 计算结束 *) ;中兴软件技术(南昌)培训中心中兴软件技术(南昌)培训中心try/ 有可能出现异常的语句有可能出现异常的语句catch(异常类异常类 异常对象异常对象)/ 编写异常的处理语句编写异常的处理语句 catch(异常类异
3、常类 异常对象异常对象)/ 编写异常的处理语句编写异常的处理语句 catch(异常类异常类 异常对象异常对象)/ 编写异常的处理语句编写异常的处理语句 . finally 一定会运行到的程序代码一定会运行到的程序代码 ; 中兴软件技术(南昌)培训中心中兴软件技术(南昌)培训中心public class ExceptionDemo02 public static void main(String args)System.out.println(* 计算开始 *) ;int i = 10 ;/ 定义整型变量int j = 0 ;/ 定义整型变量tryint temp = i / j ;/ 此处会产
4、生异常System.out.println(两个数字相除结果: + temp) ;/ 此代码不再执行System.out.println(-) ;/ 此代码不再执行catch(ArithmeticException e)/ 捕捉算术异常System.out.println(出现异常了: + e) ;/ 出现异常执行异常处理语句System.out.println(* 计算结束 *) ;中兴软件技术(南昌)培训中心中兴软件技术(南昌)培训中心public class ExceptionDemo03 public static void main(String args)System.out.pr
5、intln(* 计算开始 *) ;int i = 10 ;/ 定义整型变量int j = 0 ;/ 定义整型变量tryint temp = i / j ;/ 此处会产生异常System.out.println(两个数字相除结果: + temp) ;/ 此代码不再执行System.out.println(-) ;/ 此代码不再执行catch(ArithmeticException e)/ 捕捉算术异常System.out.println(出现异常了: + e) ;/ 出现异常执行异常处理语句finally/ 异常的统一出口System.out.println(不管是否出现异常,都执行此代码);S
6、ystem.out.println(* 计算结束 *) ;中兴软件技术(南昌)培训中心public class ExceptionDemo04 public static void main(String args)System.out.println(* 计算开始 *) ;int i = 0 ;/ 定义整型变量int j = 0 ;/ 定义整型变量tryString str1 = args0 ;/ 接收第一个参数String str2 = args1 ;/ 接收第二个参数i = Integer.parseInt(str1) ;/ 将第一个参数由字符串变为整型j = Integer.parse
7、Int(str2) ;/ 将第二个参数由字符串变为整型int temp = i / j ;/ 此处会产生异常System.out.println(两个数字相除结果: + temp) ;/ 此代码不再执行System.out.println(-) ;/ 此代码不再执行catch(ArithmeticException e)/ 捕捉算术异常System.out.println(出现异常了: + e) ;/ 出现异常执行异常处理语句System.out.println(* 计算结束 *) ;中兴软件技术(南昌)培训中心以上的程序实际上产生了三个比较明显的异常: 数组超出边界异常:ArrayIndex
8、OutOfBoundsException 数字格式化异常:NumberFormatException 算术异常:ArithmeticException 此时如果要想保持程序的执行正确,就必须同时对三个异常进行处理,所以此时的catch语句应该有三个,以分别处理不同的异常。 中兴软件技术(南昌)培训中心public class ExceptionDemo05 public static void main(String args)System.out.println(* 计算开始 *) ;int i = 0 ;/ 定义整型变量int j = 0 ;/ 定义整型变量tryString str1 =
9、 args0 ;/ 接收第一个参数String str2 = args1 ;/ 接收第二个参数i = Integer.parseInt(str1) ;/ 将第一个参数由字符串变为整型j = Integer.parseInt(str2) ;/ 将第二个参数由字符串变为整型int temp = i / j ;/ 此处会产生异常System.out.println(两个数字相除结果: + temp) ;/ 此代码不再执行System.out.println(-) ;/ 此代码不再执行catch(ArithmeticException e)/ 捕捉算术异常System.out.println(算术异常
10、: + e) ;/ 处理算术异常catch(NumberFormatException e)System.out.println(数字转换异常: + e) ;/ 处理数字转换异常catch(ArrayIndexOutOfBoundsException e)System.out.println(数组越界异常: + e) ;/ 处理数组越界System.out.println(* 计算结束 *) ;中兴软件技术(南昌)培训中心在整个java的异常结构中,实际上由以下两个最常用的类:Exception、Error,这两个类全都是Throwable的子类。 Exception:一般表示的是程序中出现的
11、问题,可以直接使用trycatch处理。 Error:一般指的是JVM错误,程序中无法处理。中兴软件技术(南昌)培训中心在整个java的异常处理中,实际上也是按照面向对象的方式进行处理,处理的步骤如下: 一旦产生异常,则首先会产生一个异常类的实例化对象; 在try语句中对此异常对象进行捕捉; 产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码。 中兴软件技术(南昌)培训中心从之前学习过的对象多态性可以清楚的知道,所有的子类实例可以全部使用父类接收,那么就可以利用向上转型的概念,让所有的异常对象都使用Exception接收。注意:在java中所有捕
12、获范围小的异常,必须放在捕获大的异常之前。否则程序在编译的时候就会出现错误提示。 中兴软件技术(南昌)培训中心public class ExceptionDemo06 public static void main(String args)System.out.println(* 计算开始 *) ;int i = 0 ;/ 定义整型变量int j = 0 ;/ 定义整型变量tryString str1 = args0 ;/ 接收第一个参数String str2 = args1 ;/ 接收第二个参数i = Integer.parseInt(str1) ;/ 将第一个参数由字符串变为整型j = I
13、nteger.parseInt(str2) ;/ 将第二个参数由字符串变为整型int temp = i / j ;/ 此处会产生异常System.out.println(两个数字相除结果: + temp) ;/ 此代码不再执行System.out.println(-) ;/ 此代码不再执行 catch(Exception e)/ 异常捕获范围大System.out.println(其他异常: + e) ;/ 处理异常System.out.println(* 计算结束 *) ;中兴软件技术(南昌)培训中心在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处
14、理异常,而交给方法的调用处进行处理 。 throws使用格式 public 返回值类型 方法名称(参数列表) throws throws 异常类异常类中兴软件技术(南昌)培训中心class Math public int div(int i,int j) throws Exception/ 本方法中可以不处理异常int temp = i / j ;/ 此处有可能产生异常return temp ;/ 返回计算结果public class ThrowsDemo01 public static void main(String args)Math m = new Math() ;/ 实例化Math对
15、象try / 因为有throws,不管是否有异常,都必须处理System.out.println(除法操作: + m.div(10, 2); catch (Exception e) e.printStackTrace();/ 打印异常中兴软件技术(南昌)培训中心class Math public int div(int i,int j) throws Exception / 本方法中可以不处理异常int temp = i / j ;/ 此处有可能产生异常return temp ;/ 返回计算结果public class ThrowsDemo02 / 本方法中的所有异常都可以不使用try.cat
16、hch处理的public static void main(String args) throws ExceptionMath m = new Math() ;/ 实例化Math对象System.out.println(除法操作: + m.div(10, 2);中兴软件技术(南昌)培训中心 与throws不同的是,可以直接使用throw抛出一个异常。抛出的时候直接抛出异常类的实例化对象即可。 中兴软件技术(南昌)培训中心public class ThrowDemo01 public static void main(String args)try throw new Exception(自己抛
17、出的异常!) ; / 抛出异常的实例化对象catch(Exception e) / 捕获异常System.out.println(e);中兴软件技术(南昌)培训中心class Math public int div(int i, int j) throws Exception / 方法可以不处理异常System.out.println(* 计算开始 *);int temp = 0;/ 声明整型变量try temp = i / j; / 如果产生异常,则执行catch catch (Exception e) / 捕获异常throw e; / 把异常交给被调用处 finally / 不管是否产生异
18、常都执行此代码System.out.println(* 计算结束 *);return temp; public class ThrowDemo02 public static void main(String args) Math m = new Math();/ 实例化Math对象try System.out.println(除法操作: + m.div(10, 0); catch (Exception e) / 进行异常的捕获 System.out.println(异常产生: + e); 中兴软件技术(南昌)培训中心中兴软件技术(南昌)培训中心public class RuntimeExce
19、ptionDemo01 public static void main(String args) String str = 123 ; / 定义一个由数字组成的字符串int temp = Integer.parseInt(str) ; / 将字符串变为int类型System.out.println(temp * temp);/ 计算乘方中兴软件技术(南昌)培训中心中兴软件技术(南昌)培训中心这两个类的区别如下:Exception在程序中是必须使用trycatch进行处理。 RuntimeException可以不使用trycatch进行处理,但是如果有异常产生,则异常将由JVM进行处理。 中兴软件技术(南昌)培训中心 在Java中已经提供了大量的异常类,但是这些异常类有些时候也很难满足开发者的要求,所以此时用户可以根据自己的需要定义自己的异常类,定义异常类,只需要继承Exception类即可。 中兴软件技术(南昌)培训中心class MyException extends Exception/ 自定义异常类,继承Exception类public MyException(String msg)/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI在移动互联应用技术中的应用
- 2026年法律服务的数字化转型与智能工具
- AI在信息安全技术应用中的应用
- 2026年固体氧化物燃料电池阴极材料
- 2026 山东七年级上册语文作文专项训练 (范文 + 指导)
- 2026年哮喘急性发作家庭急救步骤
- 2026年新能源汽车涉水后检查与维护流程
- 2026年村卫生室急救常识普及讲座
- 2026年出院医嘱交代与随访沟通技巧
- 2026年商会财务纠纷调解与处理
- 2026年大学生志愿服务西部计划考试题库及详细答案
- 国家义务教育质量监测八年级德育模拟试卷
- 楼顶发光字安装施工方案
- 储能项目epc总承包合同样本合同三篇
- 国企新闻宣传岗位笔试题(附答案)
- 雨课堂学堂在线学堂云《运动训练基本原理与方法(北京体育大学 )》单元测试考核答案
- 海洋工程技术服务合同协议
- 2025年大学《文物与博物馆学-博物馆学概论》考试备考试题及答案解析
- 合同设备增补协议范本
- 科技感蓝色配色方案色卡
- 造粒塔内外防腐施工方案
评论
0/150
提交评论