- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java通过throw关键字抛出异常对象
包、异常与输入输出3 本单元教学内容 Java异常的分类及异常类的层次结构 自定义异常 掌握throw关键字的用法 异常分类 Error异常 Error异常:运行时间出现的系统内部的错误以及资源耗尽等情况。 如:虚拟机内部发生错误、电源断电引起的异常中止等。 特点:这类异常性质严重,本身难以控制,且恢复可能性极小,意义不大。 Java不要求对这类异常进行必要的控制,编译期也不对这类异常进行检测。 RuntimeException异常 RuntimeException及其子类描述的异常,一般是由于编程错误引起的异常。如:错误的造型、数组越界存取、空指针访问等。 特点:完全可以通过改进程序加以克服,且数目很大。 Java对这种异常的处理:编译时,不对这类异常进行检测;运行时,会自动在异常发生处生成相应的异常的对象,并由系统默认的异常处理器处理(通常输出错误信息及错误地点)。 应用程序可以对其进行捕获处理(但不提倡)。 运行环境引发的异常 运行环境引发的异常。 如:网络不通,文件找不到等。 特点:只要运行环境正常,程序是可以正常运行的。 Java要求对这类异常进行必要的控制。 试一试 class MyMath{ public int devide(int x,int y) throws ArithmeticException{ int result=x/y; return result; } } class MyMathTest{ public static void main(String[] args){ MyMath mobj; mobj=new MyMath(); int result; result=mobj.devide(3,0); System.out.println(the result is + result); } } 检查和非检查型异常 非检查型异常: 编译期间编译器不对其进行检查的异常,包括Error类和RuntimeException类及其子类。 检查型异常: 除非检查型异常以外的其它异常。 编译时,编译器对方法进行分析,如方法中有产生这种异常的可能,那么方法中要么有异常的处理模块,要么必须在方法头部抛出异常,否则,不能通过编译。 自定义异常 自定义异常也是一个类,如果我们要创建检查型的 异常,我们可以继承Exception类;如果我们要创建非检查型的异常,我们可以继承RuntimeException 类 如何创建自定义异常 打开MyMath.java文件,假设我们在devide方法中不允许有负的除数,当接收到一个负的除数时,程序返回一个自定义的异常,通知调用者。 首先创建一个异常类DevideByMinusException class DevideByMinusException extends Exception{ //定义子类构造器方法 public DevideByMinusException(String msg){ super(msg); } } 抛出自定义异常 class MyMath{ public int devide(int x,int y) throws ArithmeticException,DevideByMinusException{ if(y0) throw new DevideByMinusException(除数为负数); int result=x/y; return result; } } throw关键字 用throw语句可以创建并抛出明确的异常 语法形式: Throw new xxException();如: try { if(flag0) { throw new NullPointerException(); } }…… 调用者需做的修改 class MyMathTest{ public static void main(String[] args){ try{ MyMath mobj; mobj=new MyMath(); int result; result=mobj.devide(3,0); // result=mobj.devide(3,-1); System.out.println(the result is + result); }catch(ArithmeticException e){ System.out.println(程序发生ArithmeticException); } catch(Devi
文档评论(0)