Попытка запустить тест junit и получить следующую ошибку: незарегистрированное исключение Переполнение;должен быть пойман или объявлен брошенным - PullRequest
0 голосов
/ 19 июня 2019

Я не должен касаться кода, просто запустите на нем тесты junit.

Я получаю сообщение об ошибке всякий раз, когда запускаю метод вставки.Я протестировал isFull (с assertFalse), поэтому исключение не должно быть выдано?

Я получаю сообщение об ошибке: незарегистрированное исключение Переполнение;должен быть пойман или объявлен брошенным

public void insert( int x ) throws Overflow
{
    if( isFull( ) )
        throw new Overflow( );

    // Percolate up
    int hole = ++currentSize;
    for( ; hole > 1 && x< array[ hole / 2 ]; hole /= 2 )
        array[ hole ] = array[ hole / 2 ];
    array[ hole ] = x;
}

@Test
public void testBinaryHeapDefault() {
    BinaryHeap bh1 = new BinaryHeap( 5 );
    assertEquals(false, bh1.isFull( ));
    bh1.insert( 2 );
}

1 Ответ

0 голосов
/ 19 июня 2019

Как вы говорите по комментарию в вашем вопросе

Я получаю сообщение об ошибке: незарегистрированное исключение Переполнение;должен быть перехвачен или объявлен как выброшенный

Спецификация языка Java требует, чтобы любое объявленное исключение было перехвачено или выдано блоком try-catch ИЛИ, объявленным в имени метода с использованием выражения throws [Exception].

В вашем случае вы можете попробовать один из них:

  1. Добавление предложения throws Overflow в конце метода public void testBinaryHeapDefault()
  2. Добавление try-catchблок внутри public void testBinaryHeapDefault()

Используя первый подход,

@Test
public void testBinaryHeapDefault() throws Overflow{
      BinaryHeap bh1 = new BinaryHeap( 5 );
      assertEquals(false, bh1.isFull( ));
      bh1.insert( 2 );
}

Обратите внимание, что переполнение не является исключением, используемым Java Core, поэтому вам нужно поместить его в свой проект.См. Некоторые типичные исключения Список исключений Java - JDK8

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