当前位置: 首页 > news >正文

异常练习题(Java)

问题描述:编写程序ExceptionDemo.iava,接收命令行的两个参数,要求不能输入负数,计算两个数相除的值。
要求: 对以下异常进行捕捉。
        。数据类型不一致:NumberFormatException
        。缺少命令行参数:ArrayIndexOutOfBoundsException
        。除0  ArithmeticException
        。输入负数:自定义异常ExceptionDefine
**提示:        
        ·主类(ExceptionDemo)中定义异常方法(ecm)完成两数相除功能。
        。在main()方法中使用异常处理语句进行异常处理。
        。在程序中,自定义对应输入负数的异常类(ExceptionDefine)。
        。运行时接受参数 20  10 //args[0]=“20”args[1]="10”。
        。Interger类的static方法parselnt(String s)将s转换成对应的int值。
        。如:int a=Interger.parselnt(“314");
        。 //a=314

测试类

public class ExceptionDemo {
    public static void main(String[] args) {
        //main方法接收的值在右上角编译按钮旁边的下拉框里的第一个选项
        // 在构造与项目块里面的第二行里面输入传入的参数
        int result= 0;
        try {
            int i=Integer.parseInt(args[0]);
            //Integer是包装类(每一个基础的数据类型都有一个;类)
            // 进行拆包:将Integer直接传给一个int变量
            // 通过Integer将args[0]的类型变成Integer类型
            int j=Integer.parseInt(args[1]);
            result = ecm(i,j);
            //定义一个ecm()方法
        } catch (NumberFormatException e) {
            System.out.println("数据转换错误!");
            e.printStackTrace();
        }catch (ExceptionDefine e) {
            e.printStackTrace();
        }catch (ArrayIndexOutOfBoundsException e){
            System.out.println("参数太少了!");
        }catch (ArithmeticException e){//捕捉除数,如果为零,就输出异常
            System.out.println("除数为0了!");
        }
        System.out.println(result);
    }
    public static int ecm(int a,int b) throws ExceptionDefine{
        int c=0;
        if(a<0||b<0)//结果不能为负数,如果a,或b小于0抛出一个自定义异常
            throw new  ExceptionDefine("输入负数了,不行,重新输入!");
        else
            c=a/b;
        return c;
    }
}

 自定义的异常类

import javax.management.RuntimeOperationsException;

public class ExceptionDefine extends RuntimeException {
    static final long serialVersionUID = -90745766939L;
    //序列号,用于匹配抛出的异常,可以通过按ctrl再点击继承的异常父类,在里面复制

    //空异常
    public ExceptionDefine() {
    }

    //一个输出带有信息的异常,选择Massage String 异常
    public ExceptionDefine(String message) {
        //调用super里面的方法输出并打印异常的信息
        super(message);
    }
}

相关文章:

  • 那些惊艳一时的 CSS 属性
  • ipv6地址概述——深入讲解ipv6地址
  • 这才是Git的正确学习方式
  • Linux 命令(204)—— ss 命令
  • 第十四届蓝桥杯模拟赛 第二期题解
  • [激光原理与应用-29]:典型激光器 -1- 固体激光器
  • Redis常见问题
  • 【毕业设计】1-基于单片机的城市轨道交通列车超速防护系统_里程表设计(原理图+PCB+源码+仿真工程+答辩论文)
  • 【数据结构】堆和优先级队列
  • 关于如何找环形链表的入环点
  • 下班路上捡了一部手机,我用8年开发知识主动找到了失主
  • 【Linux系统】第三篇:Linux中软件包管理器yum的使用
  • Bootstrap学习(十一)
  • 学生HTML个人网页作业作品:基于HTML实现教育培训机构网站模板毕业源码(8页)
  • 作为前端你还不懂MutationObserver?那Out了
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Cookie 在前端中的实践
  • Debian下无root权限使用Python访问Oracle
  • If…else
  • iOS 系统授权开发
  • js ES6 求数组的交集,并集,还有差集
  • MQ框架的比较
  • React中的“虫洞”——Context
  • Redux系列x:源码分析
  • springMvc学习笔记(2)
  • 编写符合Python风格的对象
  • 从tcpdump抓包看TCP/IP协议
  • 记录一下第一次使用npm
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 力扣(LeetCode)22
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微信开源mars源码分析1—上层samples分析
  • 微信小程序实战练习(仿五洲到家微信版)
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 新书推荐|Windows黑客编程技术详解
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • - 转 Ext2.0 form使用实例
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 【干货分享】dos命令大全
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​ssh免密码登录设置及问题总结
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (转)关于多人操作数据的处理策略
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET业务框架的构建
  • ??javascript里的变量问题
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [<事务专题>]
  • [C++]C++入门--引用
  • [CCIE历程]CCIE # 20604