当前位置: 首页 > 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了
  • Android 控件背景颜色处理
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • js操作时间(持续更新)
  • Python中eval与exec的使用及区别
  • Rancher-k8s加速安装文档
  • react 代码优化(一) ——事件处理
  • scala基础语法(二)
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 阿里云应用高可用服务公测发布
  • 读懂package.json -- 依赖管理
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 如何选择开源的机器学习框架?
  • 我这样减少了26.5M Java内存!
  • 携程小程序初体验
  • 用Python写一份独特的元宵节祝福
  • # 安徽锐锋科技IDMS系统简介
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $GOPATH/go.mod exists but should not goland
  • (+4)2.2UML建模图
  • (003)SlickEdit Unity的补全
  • (1)(1.9) MSP (version 4.2)
  • (C++20) consteval立即函数
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)四层和七层负载均衡的区别
  • .NET Remoting学习笔记(三)信道
  • .net 调用php,php 调用.net com组件 --
  • .NET 服务 ServiceController
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET构架之我见
  • .NET简谈设计模式之(单件模式)
  • .NET中winform传递参数至Url并获得返回值或文件
  • :如何用SQL脚本保存存储过程返回的结果集
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [<死锁专题>]