Задать вопрос
Itmoing100
@Itmoing100
engineer

Как правильно обрабатывать исключения на Java?

Здравствуйте дорогие тостерята. У меня есть вопросы по обработке исключений в Java.

Есть класс Counter:
package com.vogella.ide.counter.util;

public class Counter {
  public int count (int x){
    // TODO check that x > 0 and <= 255
    // if not throw a new RuntimeException
    // Example for a RuntimeException:

    // throw new RuntimeException("x should be between 1 and 255");

    // TODO calculate the numbers from 1 to x
    // for example if x is 5, calculate
    // 1 + 2 + 3 + 4 + 5


    // TODO return your calculated value
    // instead of 0
    return 0;
  }
}


Который после доделки будет получать внутрь себя x, проверять x на попадание в диапазон, если x не попадает в диапазон, то выбрасывать RuntimeException с печатью на экране надписи "x should be between 1 and 255", а если x попадает в диапазон, то подсчитывается сумма от 1 до х и значение суммы возвращается вызывающей метод программе. Я прав в понимании работы этого класса? В этом классе строчка return 0 используется как заглушка и после доделки класса ее нужно будет убрать? Как именно лучше реализовать исключения в этом классе?

Также есть класс Tester, который связан с классом Counter:
package com.vogella.ide.counter.main;

import com.vogella.ide.counter.util.Counter;

public class Tester {

  public static void main(String[] args) {
    Counter counter = new Counter();
    int result = counter.count(5);
    if (result == 15) {
      System.out.println("Correct");
    } else {
      System.out.println("False");
    }
    try {
      counter.count(256);
    } catch (RuntimeException e) {
      System.out.println("Works as exepected");
    }
  }

}


Как я понимаю класс Tester тестирует класс Counter, правильно ли реализован класс Tester?

Вверху класса Tester стоят такие строчки: Finish the implementation for the Tester class based on the following code. The Tester class checks for an example value but the method should work for different input values.

Те получается, что класс Tester написан не до конца верно (он является заготовкой)?
Что значит строчка: The Tester class checks for an example value but the method should work for different input values? Какой метод тут имеется ввиду? Число суммы (result == 15) в классе Tester должно считаться автоматически или выставляться пользователем?
  • Вопрос задан
  • 238 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Да, return будет лишний. В таких случаях обычно кидают
throw new IllegalArgumentException("x should be between 1 and 255");
Про остальную реализацию надо справшивать у авторов такого задания. Тестировать, считая 15 автоматически - глупо, тесты не должны повторять реализацию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы