您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 异常处理.pdf
  所属分类: Java
  开发工具:
  文件大小: 1021kb
  下载次数: 0
  上传时间: 2019-09-03
  提 供 者: weixin_********
 详细说明:Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性过 throws声明抛岀它",也"没有用try- catch语勺捕获它",还是会编译通过。例如,除数 为零时产生的 Ar i thmeticException异常,数组越界时产生的 IndexOut0 fOunds except ion 异常,fail-fai丨机刽产生的¢oη cur rentModificationExcept ion异常等,都属于运行时异 常 、曳然如ava编译器不会检查运行吋异常,但是我们也可以通过 throws进行声明抛出,也 以通过try- catch对它进行捕获欠理。 如果产生运行时异常,则需要通过修改代码来进行避免。例如,若会发生除数为零的情 况,则需要通过代码避免该情况的发生! 常见的运行异常 Cl ass CastExcept ion类型强制转换异常 Object x new Integer(0) System. out. pr intIn((Str ing)x) 当试图将对象强制转换为不是实例的子类时,抛出异常 2、 Ar ithmeticExcept ion算木异常类 int a=5/0: 个整数“除以零”时,抛出异常 3、Nul| Pointer Except ion空指针异常类 Str ing s= nul I; int size=s length o 当应用程序试图在需要对象的地方使用nuI时,抛出异常 4、 Str inglndex0ut0 fOunds Except ion索引越界 he I I 0f( 指示索引或者为负,或者超出字符串的大小,抛出异常 5、 Negat iveArray size Except ion数组负下标异常 String[ ss= new String[-1 数组大小为负值异常,当使用负数大小值创建数组时抛出异常 6、 iI lega I Ar gumentExceeption参数异常 杝出的异常表明向方法传递了一个不合法或不正确的参数 7、 Number Format Except ion数字格式异常 当试图将一∧ String转换为指定的数字类型,而该字符串却不满足数字类型要求的格式, 抛出异常 8、 Array index0ut0 fOunds Except ion数组下标越界异常 当使用的数组下标超出数组允许范围时,抛出异常 9、 cl assNotFound Exception找不到类异常 当应用试图根据字符串形式的类名构造类,而在遍历C| assPath之后找不到对应名称的 c|ass文件时,抛出异常 10、 ArrayStoreException数组存储异常 当向数组中存放非数组声明类型对象时,抛出异常 11、 NoSuchMethod Except ion方法未找到异常 12、Fi| leNotFound Except ion文件未找到异常 (02)被检查的异常 定义: Exception类本身,以及 Exception的子类中除了"运行吋异常"之外的其它子类都 属于被检杏异常。 精点:Java编译器会检查它。此类异常,要么通过 throws进行声明拋出,要么通过try- catch 进行捕获处理,否则不能通过编译。例如, Clone№ ot Suppor tedexception就属于被检查异 常。当通过 clone0接口去克降一个对象,而该对象对应的类没有实现Cloη eable接口,就 会抛出 Clone Not Suppor tedException异常。 被裣查异常通常都是可以恢复的 (03)错误 定义: Error类及其子类。 特点:和运行时异常一样,编译器也不会对错误进行检查 当资源不足、约東失败、或是其它程序无法继续运行的条件发生时,就产生错误。程序 本身无法修复这些错误的。例如, Virtua I Mach ineError就属于错误。 代似: PriceException类 package Exception practice; public class priceException extends Exception{//自定义价格异常类,并继承异常 pub1 ic PriceEXception( String message){//创建价格异常类有参构造方法 super( message);//调用异常类的有参构造方法 Tomato类 package Exception_ practice; import java. util. Scanner pub1icc1 ass tomato{//创建西红柿类 private double price; public double getpriceoi return price /设置西红柿单价,若如果产生价格异常,那么就抛出异常 public void setPrice(double price) throws PriceException i if (price >7.0)t throw new PriceException("国家规定西红柿单价不得超过7元!!!"); y else i this price price public static void main(String[] args)i //TODO Auto-generated method stub Scanner input new Scanner (System. in); System. out. printin("今天的西红柿单价为(单价格式为308):") String dayprice input next(; if (dayprice length()== 4)i //将 String类型的西红柿单价转换为 double类型 double unitPriceDou= Double. parseDoubLe(dayprice) Tomato tomato new Tomato(); try{//把有可能产生异常的Java代码放在try中 tomato. netprice( unitPricedou);//调用西红柿单价设置的方法 I catch (Exception e)i System. out. print1n(e, getMessage();/输出异常信息 I finally i input. close();//关闭控制台输入对象 else System, out. print1n("违规操作:"+"输入西红柿单价时小数点必须保留两 位有效数字(如3.00)!"); 总结 throws关键字和 throw关键字区別 1、 throws用在方法声明后面,表示抛出异常,由方法的调用者处理,而 thr ow用在方 法体内,用来制造一个异常,由方法体内的语句处理 throws是声明这个方法会抛出这种类型的异常,以便使用它的调用者知道要捕捉这 个异常,而 throw是直接抛出一个异常实例 3、 throws表示出现异常的一种可能性,并不一定会产生这些异常,但如果使用 throw 就一定会产生某种异常 异常使用的原则: 异常处理的主要作用是捕捉并处理栏序在运行时产生的异常。编写代码处理某个方法可能岀 现的异常时,可遵循以下原则: 不要过度使用异常。虽然通过异常可以增强程序的健壮性,但使用过多不必要的异 常处理,可能会影响程序执行的效率 不要使用过于庞大的try- catch块。在一个try块中放置大量的代码。这种写法虽 然看似“简单”,但是由于try块中的代码过于庞大,业务过于复杂,会增加try 块中出现异常的几率。从而增加分析异常产生原因的难度 避免使用 catch( Exception e)。如果所有异常都采用相同的处理方式,将导致无 法对不同异常进行分类处理 4 不要忽略捕捉到的异常,遇到异常一定及时处理 5 如炅父类拋出多个异常,则覆盖方法必须拋出相同的异常或其异常的子类,不能拋 出新异常。
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 异常处理.pdf
 输入关键字,在本站1000多万海量源码库中尽情搜索: