热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jmuJava06异常03throw与throws

前言C语言中一般通过返回错误代码来表示一个函数执行是否有误。然而有的时候错误返回值可能与正常值相混淆。Java中使用异常来表示程序运行中发生的错误。本实验的主要目的为了演示使用异

前言

C语言中一般通过返回错误代码来表示一个函数执行是否有误。然而有的时候错误返回值可能与正常值相混淆。
Java中使用异常来表示程序运行中发生的错误。本实验的主要目的为了演示使用异常机制替代错误返回值。


题目内容

编写类ArrayUtils
方法:public static double findMax(double[] arr,int begin, int end)
方法功能:用来返回arr数组中在下标begin与end-1之间(包括end-1)的最大值。
注意:必须使用
throws关键字声明findMax

方法说明:


  1. 要求beginIllegalArgumentException)。
  2. begin不得小于0,end不得大于arr.length,否则也抛出异常。

**注意:**抛出异常时,应让用户知道错误发生的原因。


main方法:


  1. 输入n,创建大小为n的int数组。

  2. 输入n个整数,放入数组。

  3. 输入若干对整数,代表begin与end,然后调用ArrayUtils.findMax方法。当输入的不是整数类型字符串,则退出输入循环。

  4. 最后使用如下代码打印标识信息

    try {System.out.println(ArrayUtils.class.getDeclaredMethod("findMax", double[].class,int.class,int.class));
    } catch (Exception e1) {
    }


输入样例:

5
1 3 5 6 8
0 5
3 3
3 4
3 2
-1 3
0 6
end

输出样例:

8.0
java.lang.IllegalArgumentException: begin:3 >= end:3
6.0
java.lang.IllegalArgumentException: begin:3 >= end:2
java.lang.IllegalArgumentException: begin:-1 <0
java.lang.IllegalArgumentException: end:6 > arr.length
//这里是标识信息





答案

import java.util.Scanner;class ArrayUtils {public static double findMax(double[] arr, int begin, int end) throws IllegalArgumentException {if (begin >&#61; end) {throw new IllegalArgumentException("begin:" &#43; begin &#43; " >&#61; end:" &#43; end);}else if (begin < 0){throw new IllegalArgumentException("begin:" &#43; begin &#43; " <0");}else if (end > arr.length){throw new IllegalArgumentException("end:" &#43; end &#43; " > arr.length");}double max &#61; arr[begin];for (int i &#61; begin; i < end; i&#43;&#43;) {max &#61; Math.max(max, arr[i]);}return max;}
}public class Main {public static void main(String[] args) {Scanner scanner &#61; new Scanner(System.in);int n &#61; scanner.nextInt();double[] arr &#61; new double[n];for (int i &#61; 0; i < n; i&#43;&#43;) {arr[i] &#61; scanner.nextDouble();}while(scanner.hasNextInt()){int begin &#61; scanner.nextInt();int end &#61; scanner.nextInt();try{System.out.println(ArrayUtils.findMax(arr,begin,end));}catch (Exception e){System.out.println(e);}}try {System.out.println(ArrayUtils.class.getDeclaredMethod("findMax", double[].class,int.class,int.class));} catch (Exception e1) {}}
}

推荐阅读
author-avatar
夏慕晚阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有