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