版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章异常处理6.1什么是异常
6.2try-catch-finally语句
Java中使用try-catch-finally语句来捕获并处理异常,try-catch-finally语句的语法格式如下:try{ //可能会产生异常的程序代码}catch(Exception_1e1){//处理异常Exception_1的代码}catch(Exception_2e2){//处理异常Exception_2的代码}...catch(Exception_nen){//处理异常Exception_n的代码}[finally{//通常是释放资源的程序代码 }]整个语句由try块、catch块和可以缺省finally块三部分组成。(1)try块将可能产生异常的程序代码放在此处,该段代码是程序正常情况下应该要完成的功能。6.2try-catch-finally语句(2)catch块将程序员感兴趣的要处理的异常和该异常的处理代码排列在此。(3)finally块该部分是可以缺省的,通常将释放资源的程序代码放于此处。对try-catch-finally语句的讨论:
(1)当产生异常时,程序从上往下依次判该异常是不是catch(Exception_xe)块中Exception_x类或其子类的对象。(2)try-catch-finally语句的嵌套。try-catch-finally语句的try块、catch块、finally块中的程序代码都可以嵌套另外的try-catch-finally语句,且嵌套层次数任意。6.3
声明抛出异常子句
声明抛出异常是一个子句,只能加在方法头部的后边。语法格式如下:throws<用逗号分隔的异常列表>如:publicintread()throwsIOException{...【例6.2】从键盘读入汉字,打印出其机内码。注意不是UNICODE码。importjava.io.*;publicclassEx_Exception2{ publicstaticvoidmain(String[]args)throwsIOException {intc; while((c=System.in.read())!=-1)
System.out.println(c); }}6.4抛出异常语句
真正抛出异常的动作是由抛出异常语句来完成的。格式如下:throw<异常对象>;其中:<异常对象>必须是Throwable类或其子类的对象。如:thrownewException("这是一个异常");下面的语句在编译时将会产生语法错误:thrownewString("能抛出吗?");这是因为String类不是Throwable类的子类。
又如:publicvoidf()throwsMyException{…………if(a<0)thrownewMyException(“异常1”);……}6.4抛出异常语句【例6.3】从键盘读入字符,打印出其码值。若按了a键,则立即抛出异常。importjava.io.*;publicclassEx_Exception3{publicstaticvoidmain(String[]args) {intc; try { while((c=System.in.read())!=-1) { if(c=='a') thrownewException("键a坏了!");
System.out.println(c); } }
catch(IOExceptione) { System.out.println(e); } catch(Exceptione) { System.out.println(e); }}}6.5定义自己的异常类
【例6.4】自定义异常类的使用。本例中,当a的值小于10或大于100时,将产生异常。
classMyException1extendsException{ intnum; MyException1(inta) { num=a;} publicStringtoString() { returnnum+"<10!\r\n值必须大于10";}}classMyException2extendsException{ intnum; MyException2(inta) { num=a;} publicStringtoString() { returnnum+">100!\r\n值必须小于100";}6.5定义自己的异常类classMyExceptionTest{staticvoidmakeException(inta)throwsMyException1,MyException2 {if(a<10) thrownewMyException1(a); if(a>100) thrownewMyException2(a);
System.out.println("没有产生例外"); } publicstaticvoidmain(Stringargs[]) { inta; try{a=Integer.parseInt(args[0]);
makeException(a);
System.out.println("a="+a); }catch(MyException1e) { System.out.println("产生第一个例外:\r\n"+e); } catch(MyException2e) { System.out.println("产生第二个例外:\r\n"+e);} }}6.5定义自己的异常类对异常处理的进一步讨论:(1)对Error类或其子类的对象,程序中不必进行处理。(2)对RuntimeException类或其子类,程序中可以不必进行处理。(3)除此之外的异常,程序员都应该在程序中进行处理。要么用try-catch-finally进行捕获处理要么
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理健康教育与健康教育策略选择
- 2025年度北京市职称评价考试模拟题库(农业工程)训练题及答案
- 初中心理健康2025人际关系说课稿
- 初中环保观察说课稿2025
- 初中生2025年环保自然观察说课稿设计
- 小学生自我认知2025年说课稿
- 2026年医学检验主管技师考试试题及答案
- 《医疗器械经营质量管理规范》员工培训试题含答案
- 幕墙工程中常见的质量问题的产生原因和解决措施
- 2026年地质采油工(高级)职业技能《理论知识》真题卷(附解析)
- 国有上市公司债务融资治理效应:理论、现状与优化路径
- 无人机编队课件
- GB/T 14193.1-2025液化气体气瓶充装规定第1部分:工业气瓶
- 索尼摄像机HDR-CX610E使用说明书
- 公正主题班会活动方案范本
- 六氟化硫气体培训课件
- 林火基本原理课件
- 2025湖北咸宁市通山县总工会招聘工会协理员4人备考题库及答案解析
- 2025 年小升初太原市初一新生分班考试英语试卷(带答案解析)-(人教版)
- 电机学教案本
- 农业现代化课件
评论
0/150
提交评论