Я использую следующий код в классе Triangle
, чтобы разрешить пользователю устанавливать первую, вторую или третью точку объявленного Triangle
.Java: отсутствующий оператор возврата после try-catch
public Point get(String p) throws IllegalArgumentException {
IllegalArgumentException e = new IllegalArgumentException();
try {
if (p == "first") { return first; }
else if (p == "second") { return second; }
else if (p == "third") { return third; }
else { throw e; }
}
catch (e) {
System.out.println("Error: " + e);
}
}
Компилятор tellinng меня:
Triangle.java:41: error: missing return statement
}
^
Но я думал, что точка заявления на вылов должен был быть в состоянии поймать ошибку и возвращает строку с описанием ошибки, без необходимости беспокоиться о соответствующий типу возврата функции.
вы [сравнение строк с помощью ссылки] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java), но эта конкретная ошибка связана с тем, что блок 'catch' не приводит к« возврату »или« броску », и этот метод должен верните «Точку». –
Возможный дубликат [Ошибка компилятора Java: Отсутствует заявление о возврате] (http://stackoverflow.com/questions/29310907/java-compiler-error-missing-return-statement) – Basilevs
Пожалуйста, не отвечайте на дубликаты. См. [Почему переполнение стека настолько отрицательное в последнее время?] (Http://meta.stackoverflow.com/a/252077) – Basilevs