2011-02-07 3 views
0

Я ищу, чтобы научиться бросать супер простое исключение в java. У меня есть следующее:Throw Simple Exception в 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); 
} 

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

+4

При написании такого вопроса, вы должны указать, что ошибка, которую вы получаете. – Olhovsky

+0

Прочтите JSL, действительно. Каждая отдельная книга или документ, в котором вводятся исключения в Java, упоминает, что ваши функции должны объявлять те * отмеченные * исключения, которые вы собираетесь бросить. Прочитайте документацию, доступную по исключениям * checked * и * unchecked *. Кроме того, привыкните рассказывать людям, какую ошибку вы получаете. Говоря людям, «они не компилируются», не сообщая им, какую ошибку компилятор вам говорит, это просто оскорбительно. Люди не читают мысли и не могут смотреть на ваш монитор телепатически. –

ответ

3

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

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

или

public Percolation(int N) throws Exception 
2

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

public Percolation(int N) throws Exception {} //create N-by-N grid, with all sites blocked 
1

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

В то же время, попробуйте это:

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

Есть два типа исключений в Java:

  1. Compiler применяются исключения ("проверяемые исключения").
  2. Исключения времени выполнения («непроверенные исключения»).

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

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