java通过KB类输入成绩_第5章第5章java异常处理(774KB).ppt

如何创建自定义异常 打开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(y<0) throw new DevideByMinusException("除数为负数"); int result=x/y; return result; } } throw关键字 用throw语句可以创建并抛出明确的异常 语法形式: Throw new xxException();如: try { if(flag<0) { 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(DevideByMinusException e){ System.out.println("程序发生DevideByMinusException"); } catch(Exception e){ System.out.println("程序发生其他类型异常"); } } } 多catch结构 上面的程序,我们使用一个try后面跟着多个catch来捕捉异常,每一个catch可以处理一个不同的异常。 如果将catch(Exception e)代码块放到前面,行吗?为什么? Exception类是所有异常类的父类,从语法上讲,是能够处理所有异常的。所以他后面的catch代码块永远都得不到执行 使用多catch结构捕获多种异常时,catch子句应该按先子类异常再父类异常的顺序排列 实战演习 编程求解并输出从键盘输入的浮点数的平方根,并设计自己的异常来处理输入数据小于0.0的异常情况,并在出现异常时输出提示信息“输入了负数”。 深圳职业技术学院 1、以每一次课(2节课)为单元。 Java面向对象程序设计 深圳职业技术学院软件技术专业 异常处理 内容提要 4 异常的基本概念 1 2 3 Java异常处理机制 掌握 try-catch 语句的用法 掌握throws关键字的用法 什么是异常? class MyMath{ public int devide(int x,int y){ 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); } } 该程序编译能通过吗?运行程序,有什么信息返回? 异常 Exception in thread "main" java.lang.ArithmeticException: / by zero 这说明,程序发生了算术异常(ArithmeticException),非正常的结束了。这种情况就是我们说的异常 异常定义了程序中遇到的非致命的错误,而不是编译时的语法错误。如除数为0,打开一个不存在的文件,操作数越界

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值