Ошибка утверждения Java не вызывает ошибку

Почему мой утвердительный оператор не дает никакого результата? Я думаю, что первый оператор assert должен завершиться неудачно, но я не вижу ничего отображаемого на Eclipse.

Я использую Eclipse для запуска этой программы.

package java.first;

public class test {
  public static void main(String[] args) throws Exception {
    String s = "test1";
    assert (s == "test");
    s = "test";
    assert (s == "test");
  }
} 

Ответ 1

Вам нужно установить -ea (Enable Assertions) в ваших настройках JVM.


Несвязанный, но вы почти всегда хотите string1.equals(string2), а не ==.

Ответ 2

Вам нужно включить утверждения с аргументом -ea (сокращение от -enableassertions).

В Eclipse:

  • Щелкните правой кнопкой мыши проект, затем "Запустить как" → "Запустить конфигурации..."
  • Выберите вкладку "Аргументы"
  • Поместите -ea в поле "VM arguments".
  • Выберите "Применить"

Теперь запуск должен вызвать AssertionError.

Ответ 4

Вам нужно включить проверку утверждения во время выполнения. Документация Oracle для Java:

Чтобы включить утверждения в разных деталях, используйте -enableassertions, или -ea, switch. Чтобы отключить утверждения в разных деталях, используйте параметры -disableassertions или -da, switch.

Подробная информация на веб-сайте Oracle по адресу http://docs.oracle.com/javase/1.4.2/docs/guide/lang/assert.html#enable-disable

Чтобы изменить параметры времени выполнения для программ, запускаемых внутри Eclipse, вам нужно будет изменить параметры, за которыми Eclipse запускает вашу программу. Как это сделать будет зависеть от вашей версии Eclipse, но вот как это работает в Eclipse Europa...

  • Откройте диалоговое окно "Запуск" (это должно быть опция в меню "Выполнить" ).
  • Нажмите вкладку "(x) = Аргументы."
  • В поле "Аргументы VM" введите -ea для включения утверждений.
  • Нажмите кнопку "Применить".

Ответ "заимствован" из http://www.coderanch.com/t/416987/vc/enable-Assertions-eclipse

Ответ 5

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