У меня есть метод, который добавляет два вектора вместе, и мне нужно вернуть исключение, если длина этих векторов не совпадает с началом. Я написал кодОшибка Java error error
public static Vector vectorAdd(Vector v1, Vector v2) throws IllegalOperandException{
if(v1.getLength() == v2.getLength()) {
double[] temp = new double[v1.getLength()];
for(int i = 0; i < temp.length; i++) {
temp[i] = v1.get(i) + v2.get(i);
}
Vector v3 = new Vector(temp);
return v3;
} else {
throw new IllegalOperandException("Length of Vectors Differ");
}
}
Но когда я компилирую мой основного метод
else if (userInput == 2) {
System.out.println("Please enter a vector!");
System.out.println("Separate vector components by "
+ "using a space.");
Vector v1 = input.readVector();
System.out.println();
System.out.println("Please enter a vector!");
System.out.println("Separate vector components by "
+ "using a space.");
Vector v2 = input.readVector();
System.out.println();
System.out.println();
System.out.println(LinearAlgebra.VectorAdd(v1, v2));
Существует ошибка
ошибки: незарегистрированное IllegalOperandException исключения; должен быть пойман или объявлен брошенным System.out.println (LinearAlgebra.vectorAdd (v1, v2));
Я уже нахожусь в Интернете в течение часа, но я не понимаю, в чем проблема. Я уверен, что это связано с попыткой и уловкой, но я понятия не имею, как это исправить. Что мне делать?
У вас есть исключение исключения IllegalOperandException.so вам нужно обработать исключение –
Попробуйте окружить этот System.out.println (LinearAlgebra blah blah) блоком try/catch, который специально обрабатывает IllegalOperandException или вообще, обрабатывает Exception. – MarsAtomic
@MarsAtomic http://stackoverflow.com/questions/2416316/why-is-the-catchexception-almost-always-a-bad-idea – m0skit0