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

Как написать свой собственный класс исключений.

Я пытаюсь написать свой собственный класс исключений, который генерирует InvalidTestScore.

// george beazer
import java.util.Scanner;

public class TestScores{
    public static void main(String[]args){
                int numTests = 0;
                double[] grade = new double[numTests];
                double totGrades = 0;
                double average;   

                Scanner keyboard = new Scanner(System.in);
                System.out.print("How many tests do you have? ");

                numTests = keyboard.nextInt();
                grade = new double[(int) numTests];

                for (int index = 0; index < grade.length; index++){
                        System.out.print("Enter grade for Test " + (index + 1) + ": ");
                        grade[index] = keyboard.nextDouble();        

                        if (grade[index] < 0 || grade[index]> 100){
                                try {
                                  throw new InvalidTestScore();

                                } catch (InvalidTestScore e) 
                                {

                                    e.printStackTrace();

                                }
                        }
                }


                for (int index = 0; index < grade.length; index++){
                        totGrades += grade[index];
                }

                average = totGrades/grade.length;
                System.out.print("The average is: " + average);
        }

}

Ответы [ 3 ]

2 голосов
/ 08 февраля 2011

Просто расширить Exception:

public class InvalidTestScoreException extends Exception {

   public InvalidTestScoreException() {
      super("Invalid test score");
   }

   public InvalidTestScoreException(String message) {
      super(message);
   }

   public InvalidTestScoreException(Throwable throwable) {
      super(throwable);
   }
}

С другой стороны, проверенные исключения изначально очень привлекательны. Но вы должны избегать их ненужного использования. Проверенные исключения используются, чтобы заставить программиста иметь дело с исключительным условием (что делает код более надежным, поскольку исключительное условие не может быть проигнорировано).

Кроме того, проверенное исключение используется, когда условие восстанавливаемое . Это означает, что когда вы используете проверенное исключение, существует разумное предположение, что программист может восстановиться после этого исключения.

Использовать исключения времени выполнения для указания ошибок программирования. Например, вы можете использовать IllegalArgumentException, если предварительное условие для вашего метода нарушено. Учитывая ваш пример, это исключение может иметь больше смысла.

Если вы можете использовать соответствующее стандартное исключение вместо проверенного исключения, сделайте это вместо создания нового исключения, имитирующего существующую функциональность (DRY).

2 голосов
/ 08 февраля 2011
class MyCustomException extends Exception
{
    public MyCustomException(String message)
    {
        super(message);
    }
}
1 голос
/ 08 февраля 2011

Вы просто расширяете класс Exception. Как это:

class InvalidTestScore extends Exception {
}

Кроме того, вот несколько полезных конструкторов, которые я обычно реализую.

    public InvalidTestScore(String msg) {
        super(msg);
    }

    public InvalidTestScore(Throwable cause) {
        super(cause);
    }

Вот официальный след по обработке исключений: Учебные руководства по Java: Урок: Исключения

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