Я не могу понять синтаксис, чтобы бросить исключение для знаменателя в виде 0 для рационального класса - PullRequest
0 голосов
/ 29 октября 2018

Я получаю сообщение об ошибке как для рационального синтаксиса, так и для синтаксиса исключений, когда пытаюсь скомпилировать класс. Вот несколько примеров методов, которые должны выдавать ошибку.

/**
 * Negate a rational number r
 * 
 * @return a new rational number that is negation of this number -r
 */    
public Rational negate()
{               
    // CHANGE THE RETURN TO SOMETHING APPROPRIATE
return new Rational ((-1*numerator),denominator); 
}


/**
 * Invert a rational number r 
 * 
 * @return a new rational number that is 1/r.
 */    
public Rational invert()
{               
    // CHANGE THE RETURN TO SOMETHING APPROPRIATE
if (numerator == 0) { 

    throw new ZeroDenominatorException( ); 

} 

    return new Rational (denominator,numerator);


}

1 Ответ

0 голосов
/ 29 октября 2018

Предполагая, что ваше ZeroDenominatorException является проверенным исключением, вам необходимо добавить throws ZeroDenominatorException к вашей invert сигнатуре метода (или любым другим методом, выбрасывающим отмеченные исключения): -

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