如何在java中创建异常类

如何在java中创建异常类,java,exception,exception-handling,Java,Exception,Exception Handling,一般来说,我对论坛和Java都是新手。我试图更好地理解异常。我创建了一个类,它对整数数组进行排序并打印最小值。此外,我还创建了一个异常类,如果数组包含零个元素,我将抛出该异常类。尽管eclipse告诉我有一个无法访问的catch块,但我遇到了一些问题,这个异常从未从try语句体抛出。我不知道这意味着什么,也不知道如何修复它。这是我的密码。我有一种感觉,它很小,但显然很重要。如果有人能帮我做一些我错过的事情,我将不胜感激 import java.util.*; public class Exer

一般来说,我对论坛和Java都是新手。我试图更好地理解异常。我创建了一个类,它对整数数组进行排序并打印最小值。此外,我还创建了一个异常类,如果数组包含零个元素,我将抛出该异常类。尽管eclipse告诉我有一个无法访问的catch块,但我遇到了一些问题,这个异常从未从try语句体抛出。我不知道这意味着什么,也不知道如何修复它。这是我的密码。我有一种感觉,它很小,但显然很重要。如果有人能帮我做一些我错过的事情,我将不胜感激

import java.util.*;

public class Exercise1 {

    public static void main(String[] args) throws ArrayOutOfBoundsException { 
        //int[] array = { };
        int result = 0;
        int[] array = { 16, 14, 15, 12, 102, 88, 64, 1 , -3 }; 

        try {
            result = Exercise1.min(array);
            System.out.print(result);
        }
        catch (ArrayOutOfBoundsException noElements) {
            System.out.print("There are no elements in this array: " + noElements.getMessage());
        }
    }

    public static int min(int[] array) {
        Arrays.sort(array);
        int minValue = array[0];
        return minValue;
    }
}


public class ArrayOutOfBoundsException extends Exception {

    public ArrayOutOfBoundsException(String s) {
        super(s);
    }
}
您的方法min…,应该在适用时抛出一个新的异常,并且应该声明它在方法签名中抛出此异常

i、 e


然后调用该方法(这里是主方法)的代码应该捕获并处理它。请注意,不应将main方法声明为引发该异常,因为它将处理该异常。

在Java中处理选中的异常时,为了捕获它,try块中的某些方法必须声明它将引发该异常。如果您修改min的声明以显式声明它可以抛出ArrayIndexOutOfBoundsException,那么现在您的try/catch逻辑就可以捕获它,编译器将停止抱怨

public static int min( int[] array ) throws ArrayIndexOutOfBoundsException {
    if ( array == null || array.length == 0 ) {
        throw new ArrayIndexOutOfBoundsException();
    }
    Arrays.sort( array );
    int minValue = array[0];
    return minValue;
}

不过,作为一个用例,声明自己的ArrayIndexOutOfBoundsException毫无意义。Java对此已经有一个异常,尽管是运行时未检查的异常。

请修复indentation@MiserableVariable当前位置我认为他的缩进全部结束的一个原因是,他可能将制表符缩进与空格缩进混合在一起。对于原始海报,请使用其中一个。我自己,我更喜欢使用空格,不是很多,对于这个网站来说,每个代码块使用2-3个空格通常就足够了,但一定要努力使代码缩进规则化并符合标准,以便代码可读。ArrayOutOfBoundsException不是您尝试中的任何一行抛出的异常。您的尝试应该在int minValue=array[0]@HovercraftFullOfEels附近。同意。对不起,我没有realise@Ghost当我尝试用try语句包围int-minValue=array[0]时,eclipse会说我的返回变量未初始化这是一个很大的帮助。然而,编译器仍然在抱怨,因为我的异常类构造函数接受一个字符串参数,当我调用构造函数时,我没有字符串放入其中。我在一本书中读到它应该是,但我不知道为什么。到底是什么弦?
public static int min( int[] array ) throws ArrayIndexOutOfBoundsException {
    if ( array == null || array.length == 0 ) {
        throw new ArrayIndexOutOfBoundsException();
    }
    Arrays.sort( array );
    int minValue = array[0];
    return minValue;
}