1. 程式人生 > 其它 >7-6 測試丟擲異常 (20分)

7-6 測試丟擲異常 (20分)

技術標籤:javajava

7-6 測試丟擲異常 (20分)
嘗試構造類ArrayUtil,該類的方法int findMax(int[] arr, int begin, int end)能丟擲IllegalArgumentException(表示引數錯誤)的方法。 正常執行要求begin<=end

如果begin>=end,丟擲異常(IllegalArgumentException),異常資訊為 “begin:x >= end:x”

如果begin<0,丟擲異常(IllegalArgumentException),異常資訊為 “begin:x < 0”

如果end>arr.length,丟擲異常(IllegalArgumentException),異常資訊為 “end:x > arr.length”

要求在findMax方法宣告處宣告此異常,在main函式裡要捕獲此異常,並輸出異常型別(可用obj.getClass().getName())和異常資訊

輸入格式:
輸入n,表示int陣列大小

輸入n個整數,放入陣列。

輸入m,表示begin和end的對數

輸入m對整數,代表begin與end,然後呼叫ArrayUtils.findMax方法。

輸出格式:
異常資訊

陣列的最大值

輸入樣例:
在這裡給出一組輸入。例如:

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

輸出樣例:
在這裡給出相應的輸出。例如:

5
java.lang.IllegalArgumentException:
begin:3 >= end:3 4 java.lang.IllegalArgumentException: begin:3 >= end:2 java.lang.IllegalArgumentException: begin:-1 < 0 java.lang.IllegalArgumentException: end:6 > arr.length

思路:

就按照題述一步一步翻譯就行
import java.util.*;
public class Main {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
Scanner in=new Scanner(System.in); int n=in.nextInt(); int[] a=new int[n]; for(int i=0;i<n;i++){ a[i]=in.nextInt(); } int m=in.nextInt(); ArrayUtil aaa=new ArrayUtil(); for(int i=0;i<m;i++){ int low=in.nextInt(); int high=in.nextInt(); aaa.findMax(a,low,high); } } } class ArrayUtil{ public ArrayUtil() {//建構函式 } public void findMax(int[] arr, int begin, int end) { if(begin>=end) { System.out.println("java.lang.IllegalArgumentException: begin:"+begin+" >= end:"+end); }else if(begin<0) { System.out.println("java.lang.IllegalArgumentException: begin:"+begin+" < 0"); }else if(end>arr.length) { System.out.println("java.lang.IllegalArgumentException: end:"+end+" > arr.length"); }else{ int max=-9999; for(int i=begin;i<end;i++) { if(arr[i]>max) { max=arr[i]; } } System.out.println(max); } } }