Не могу сделать свое собственное исключение. пожалуйста, помогите мне - PullRequest
0 голосов
/ 08 февраля 2011

Когда я пытаюсь сделать оператор catch, используя исключение InvalidTestScore, ява не разрешит. Однако когда я использую IllegalArgumentException, java позволяет мне это сделать.

// George Beazer

public class TestScores2 {
    public TestScores2(int[] arg) {
        System.out.println(average(arg));
    }
    public int average(int[]arg)
    {
        int temp=0;
        for (int i = 0; i < arg.length; i++) {
            if(arg[i]<0 || arg[i]>100)
            {
                IllegalArgumentException e = new IllegalArgumentException();
                throw e;
            }
            else
            {
                temp+=arg[i];
            }
        }
        return temp/arg.length;
    }
    public static void main(String[] args) {
        int []ar={4,78,33,89};
        TestScores2 ts=new TestScores2(ar);
    }

}

Работает нормально

Однако, если я бегу

public class TestScores2 {
    public TestScores2(int[] arg) {
        System.out.println(average(arg));
    }
    public int average(int[]arg)
    {
        int temp=0;
        for (int i = 0; i < arg.length; i++) {
            if(arg[i]<0 || arg[i]>100)
            {
                InvalidTestScoreException e = new InvalidTestScore();
                throw e;
            }
            else
            {
                temp+=arg[i];
            }
        }
        return temp/arg.length;
    }
    public static void main(String[] args) {
        int []ar={4,78,33,89};
        TestScores2 ts=new TestScores2(ar);
    }

}

Я не могу найти символ. Что нужно, чтобы сделать собственное исключение.

Ответы [ 2 ]

4 голосов
/ 08 февраля 2011
InvalidTestScoreException e = new InvalidTestScore();

???не должно быть:

InvalidTestScoreException e = new InvalidTestScoreException();
3 голосов
/ 08 февраля 2011

Как указал @Falmarri, вам нужно объявить класс InvalidTestScoreException

Вот как может выглядеть измененная версия:

public class TestScores2 {

    public class InvalidTestScoreException extends RuntimeException {
        //Constructors go here
    }

    public TestScores2(int[] arg) {
        System.out.println(average(arg));
    }
    public int average(int[]arg)
    {
        int temp=0;
        for (int i = 0; i < arg.length; i++) {
            if(arg[i]<0 || arg[i]>100)
            {
                InvalidTestScoreException e = new InvalidTestScoreException();
                throw e;
            }
            else
            {
                temp+=arg[i];
            }
        }
        return temp/arg.length;
    }
    public static void main(String[] args) {
        int []ar={4,78,33,89};
        TestScores2 ts=new TestScores2(ar);
    }

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