Как я могу остановить мой код, выполняющийся внутри метода, не давая желаемого возврата - PullRequest
0 голосов
/ 22 сентября 2019

Я пытаюсь запустить какой-то код, который проверяет, что ввод является целым числом.Этот метод вызывается из main и пытается преобразовать ввод в целое число.Если это не удастся, он напечатает сообщение об ошибке, а затем я хотел бы остановить код.Вызывается следующий метод:

При попытке компиляции выдается ошибка:

отсутствует оператор возврата}

Есть идеи, как это можно сделать?

public static int checkCharactersPerLineInput(String inputNumber){
    try{
        int length = Integer.parseInt(inputNumber);
        return length;
        }
        catch (Exception e) {
            System.out.println("Error with input... Not an integer please 
            try again.");
            System.exit();
        }
}

Ответы [ 4 ]

0 голосов
/ 22 сентября 2019

Вы можете использовать способ возврата нулевого значения в случае сбоя. Но вам придется изменить тип возвращаемого значения на java.lang.Integer

0 голосов
/ 22 сентября 2019

Суть методов, которые возвращают значения, заключается в том, что они возвращают значения, поэтому, где бы ни был реализован ваш метод, потребуется правильное целое число.Чтобы обойти это, можно поместить return null; в часть перехвата, и где бы ни вызывался ваш метод, вам сначала нужно проверить

if (checkCharactersPerLineInput(str)!=null){
    //your code
}

. Если вас интересует только число строк, вы можететакже замените int length = Integer.parseInt(inputNumber); на int length = Integer.parseInt(inputNumber.replaceAll("[^1234567890]", "");, который удалит все символы в строке, которые не являются цифрами.Затем вы также можете удалить фразы try и catch из своего кода.

0 голосов
/ 22 сентября 2019

Любой метод, который не объявлен как void, должен содержать инструкцию return с соответствующим возвращаемым значением, например:

return returnValue;

Поскольку ваш метод имеет тип возврата int,вам нужно иметь целочисленное возвращаемое значение.Если вы не хотите ничего возвращать, просто используйте void.

Возможно, вы захотите узнать больше об этом здесь .

0 голосов
/ 22 сентября 2019

public static int checkCharactersPerLineInput(String inputNumber){

Все функции и методы должны возвращать значение (ваш метод этого не делает, поэтому выдает ошибку), если только это не void или конструктор.

Либо

A) Добавьте оператор return someInteger в ваш checkCharactersPerLineInput метод

B) Замените int на void.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...