一个异常处理的习题(是用RunTimeException还是Exception)
来源:互联网 发布:淘宝培训班有用吗 编辑:程序博客网 时间:2024/05/16 10:02
需求:要求写一个求圆和长方形的面积。
要有异常处理机制。(出现零和负数。)
package 异常练习;public class NegativeException extends RuntimeException{ //继承RunTimeException而不继承Exception的原因: //因为如果传入的值是非法值,如果程序里的圆面积和长方形面积接下来要作其他操作, //那么就必须要让程序停下来,不然后续的会出问题。不能处理的问题,应该通过修正代码解决。 public NegativeException(String msg) { super(msg); }}
package 异常练习;public class ZeroException extends RuntimeException{ public ZeroException(String msg) { super(msg); }}
package 异常练习;public interface Area { //用接口而不是用抽象类的原因: //因为面积不一定是图形的属性,可以是附加的属性。 public double getArea();}
package 异常练习;public class circle implements Area{ private int radius; public circle(int radius) { //原先把异常对象放在getArea方法内, //其实应该放在构造函数里,如果传入的值非法, //那么圆形就不应该建立对象这样才符合逻辑。 if(radius<0) throw new NegativeException("半径不能为负数"); if(radius==0)throw new ZeroException("半径不能为0"); this.radius= radius; } public static final double PI =3.14; public double getArea() { return radius*PI; }}
package 异常练习;public class rectangle implements Area{ private int length,width; public rectangle(int length ,int width) { if(length<0||width <0) throw new NegativeException("长宽不能小于零"); if(length==0||width==0)throw new ZeroException("长宽不能为零"); this.length=length; this.width=width; } public double getArea() { //if(length<0||width <0) //if(length==0||width==0) //不要把问题在程序流程里处理,而应把问题与程序正常流程分离,以提高阅读性。 //否则流程代码与问题处理代码结合过于紧密,高耦合,阅读性差。 return length*width; }}
package 异常练习;public class ExceptionPractice { public static void main(String[] args) { circle cir= new circle(0); System.out.println(cir.getArea()); rectangle rtg = new rectangle(-3,4); System.out.println(rtg.getArea()); }}
0 0
- 一个异常处理的习题(是用RunTimeException还是Exception)
- 是Exception还是Throwable表示所有异常的基类
- 是Exception还是Throwable表示所有异常的基类
- 异常 Exception与RuntimeException(1)
- 异常 Exception与RuntimeException(2)
- android 异常类型 Exception(runtimeException )
- 异常-RuntimeException-Error-Exception
- 自定义异常(Exception)和运行时异常(RuntimeException )
- Struts2中关于异常即是Exception的处理
- 异常处理(Exception)
- Exception与RuntimeException的区别(异常的基本概念)
- 详解Java异常Throwable、Error、Exception、RuntimeException的区别
- java 异常之Exception与RuntimeException的区别
- Java异常机制(Throwable、Error、Exception、RuntimeException)
- java Exception(runtimeException )
- 用if、Exception还是assert—看JavaEye帖子:面试题:用Exception异常还是if判断》的感想
- Java异常处理-----运行时异常(RuntimeException)
- Java异常Error、Exception、RunTimeException、Throwable
- 关于uint8_t整数溢出的错误
- Sublime CSS3 语法高亮显示
- 用 Redis 实现锁功能
- Node.js学习文档
- 算法竞赛入门经典第二章习题解答
- 一个异常处理的习题(是用RunTimeException还是Exception)
- 算法训练 区间k大数查询
- ACM-the mixed letter
- 4月4日毕设日记
- 我的java学习笔记(17)关于内部类(part 2)
- ASP打印指定GridView内容
- 2015阿里巴巴前端实习生在线笔试题
- Minimum Path Sum -- leetcode
- 广度优先搜索和深度优先搜索