美文网首页
三角形`异常`案例

三角形`异常`案例

作者: 懵智的大仁哥 | 来源:发表于2016-03-03 11:44 被阅读108次
异常

在java.lang包中,有一个叫做Throwable的类,它有两个子类Exception以及Error,两者都是Java异常处理重要的子类,包含大量子类以及方法,也可以通过继承Exception自定义异常
异常为程序本身可以处理的问题,而错误会导致程序崩溃或者灾难性后果.
如果一个方法有可能出现异常,需要声明并抛出一个异常.
在方法调用时,需要去尝试捕获这个异常并进行处理.

/**
 *三角形异常案例,三条边长大于零且任意两条边之和大于第三边的三条边能组成三角形.
 *所以在实际编程时,要对这三条边加以约束,当条件不符合时要抛出异常,给予提示.
 */

//三角形异常类,成员变量为要输出的异常信息以及三角形的三边.
class TriangleException extends Exception{
    private String info;
    private int x,y,z;

    public TriangleException(String info,int x,int y,int z){
        this.info=info;
        this.x=x;
        this.y=y;
        this.z=z;
    }
    public String getInfo(){
        System.out.println("x:"+x+" y:"+y+" z:"+z);
        return this.info;
    }
}

//三角形类,成员变量为三角形的三条边长
class Triangle{
    private int x,y,z;
    //由于构造方法需要对三边进行初始化,所以可能会有异常,要进行抛出
    public Triangle(int x,int y,int z)throws TriangleException{
        if(x<=0||y<=0||z<=0){
            //抛出异常变量(携带异常信息以及三条边长)
            throw new TriangleException("边长不能小于0!",x,y,z);
        }else if (x+y<=z||x+z<=y||z+y<=x) {
            throw new TriangleException("两边之和要大于第三边!",x,y,z);
        }else{
            this.x=x;
            this.y=y;
            this.z=z;
        }
    } 
    
    //由于set方法需要对三边进行赋值,所以可能会有异常,要进行抛出
    public void setXYZ(int x,int y,int z)throws TriangleException{
        if(x<=0||y<=0||z<=0){
            //抛出异常变量(携带异常信息以及三条边长)
            throw new TriangleException("边长不能小于0!",x,y,z);
        }else if (x+y<=z||x+z<=y||z+y<=x) {
            throw new TriangleException("两边之和要大于第三边!",x,y,z);
        }else{
            this.x=x;
            this.y=y;
            this.z=z;
        }
    }
}

class TriangleDemo{
    //入口点
    public static void main(String[] args){
        //由于在初始化一个对象时,传入三边可能发生异常,所以需要try
        try{
            Triangle a = new Triangle(3,4,5);
        }
        //将捕获的异常对象进行处理,打印对象的info信息
        catch(TriangleException e){
            System.out.println(e.getInfo());
        }
        try{
            Triangle b = new Triangle(1,2,3);
        }
        catch(TriangleException e){
            System.out.println(e.getInfo());
        }
        try{
            Triangle c = new Triangle(-1,2,4);
        }
        catch(TriangleException e){
            System.out.println(e.getInfo());
        }
    }
}

结果:

x:1 y:2 z:3
两边之和要大于第三边!
x:-1 y:2 z:4
边长不能小于0!

相关文章

  • 三角形`异常`案例

    异常 在java.lang包中,有一个叫做Throwable的类,它有两个子类Exception以及Error,两...

  • 07-python函数-案例

    案例1:判断一个数是否为素数 案例2:输出100以内的素数; 案例3:判断三边能否构成三角形; 案例4:求三角形周...

  • php自动义异常类

    几种php异常类的案例

  • Androidの android.view.WindowMana

    异常案例 项目中使用BottomSheetDialogFragment作为底部弹框,出现异常: 异常多见于Digl...

  • Metal案例:绘制三角形

    效果图如下: 在Metal案例分析中我们已经介绍过了Metal案例的构建流程。其实绘制三角形案例中,大致流程是一致...

  • OpenGL学习之路(5.0) 三角形批次类案例

    通过三角形批次类画图形示例 球体 环面 圆柱 圆锥体 磁盘 代码案例 该代码案例需要搭建OpenGL环境

  • 布线技巧1

    1 5极点:走向分开,2变三;3极点:三角形扩展1变2 ———————————— 案例: 当出现三角形时不要是钝角...

  • iOS 异常捕获处理机制(初级篇)

    一、异常处理简介 二、异常捕获案例 使用@try catch捕获异常 例1是最简单的一种写法: 捕获异常之嵌套捕获...

  • Metal 案例03:大批量顶点数据的图形渲染

    本案例的目的在于理解顶点数据的两种存储方式以及它们的区别和应用场景 在Metal 案例02:加载三角形案例中,顶点...

  • OpenGL-你好,三角形

    案例练习:在窗口绘制一个三角形 进行次案例练习之前,请确保已经搭建好 OpenGL环境 ! 并导入头文件 首先熟悉...

网友评论

      本文标题:三角形`异常`案例

      本文链接:https://www.haomeiwen.com/subject/tqankttx.html