Брось простое исключение в Java - PullRequest
1 голос
/ 07 февраля 2011

Я хочу узнать, как создать супер простое исключение в Java.У меня есть следующее:

public Percolation(int N) // create N-by-N grid, with all sites blocked
{
    if(N < 1)
        throw new Exception("N must be greater than zero.");

    grid = new boolean[N * N + 2];
    dimension = N;
    grid[0] = true;
    grid[N+1] = true;       
    unionStruct = new QuickFindUF(N+2);
}

Это не компиляция, но я собираюсь это сделать.Какой правильный синтаксис для этого?

Ответы [ 3 ]

3 голосов
/ 07 февраля 2011

Это потому, что вы генерируете проверенное исключение, не объявляя исключение, которое вы генерируете.В вашем случае вам, вероятно, следует выдавать исключение, полученное из RuntimeException, и оно не проверяется (то есть вам не нужно объявлять их).Таким образом, есть два способа исправить это:

throw new IllegalArgumentException("N must be greater than zero."); // unchecked

или

public Percolation(int N) throws Exception
2 голосов
/ 07 февраля 2011

Вы должны объявить, что конструктор создает исключение

public Percolation(int N) throws Exception {} //create N-by-N grid, with all sites blocked 
1 голос
/ 07 февраля 2011

Я подозреваю, что вы не указываете, что создается исключение.Сообщите нам, какую ошибку вы получаете.

А пока попробуйте следующее:

    public Percolation(int N) throws Exception
{
    if(N < 1)
        throw new Exception("N must be greater than zero.");
    ...

В Java существует два типа исключений:

  1. Исключения, принудительно установленные компилятором(«проверенные исключения»).
  2. Исключения во время выполнения («непроверенные исключения»).

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

В этом случае непроверенное исключение, которое вы ищете, будет IllegalArgumentException.

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