• 异常练习题(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

    测试类

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

     自定义的异常类

    1. import javax.management.RuntimeOperationsException;
    2. public class ExceptionDefine extends RuntimeException {
    3. static final long serialVersionUID = -90745766939L;
    4. //序列号,用于匹配抛出的异常,可以通过按ctrl再点击继承的异常父类,在里面复制
    5. //空异常
    6. public ExceptionDefine() {
    7. }
    8. //一个输出带有信息的异常,选择Massage String 异常
    9. public ExceptionDefine(String message) {
    10. //调用super里面的方法输出并打印异常的信息
    11. super(message);
    12. }
    13. }

  • 相关阅读:
    vue 前端 问题整理
    用友YonSuite前后端一体化数智赋能,有化妆品的地方就有老中医
    chapter three in C primer plus
    【uiautomation】获取微信好友名单,可指定标签 & 全部
    LeetCode(力扣)39. 组合总和Python
    多线程-- 并发List\队列\Map
    Pantera联创:读懂想做web3版Discord的加密原生聊天协议Comm
    C# dll代码混淆加密
    python用最小二乘法实现平面拟合
    【探索C++】C++对C语言的一些类的增强
  • 原文地址:https://blog.csdn.net/m0_56501550/article/details/128148408