Подтвердить что ты не робот

Как бросить RuntimeException ( "не может найти символ" )

Я пытаюсь сделать исключение в своем коде следующим образом:

throw RuntimeException(msg);

Но когда я создаю NetBeans, я получаю эту ошибку:

C:\....java:50: cannot find symbol
symbol  : method RuntimeException(java.lang.String)
location: class ...
        throw RuntimeException(msg);
1 error

Нужно ли мне что-то импортировать? Я опечатываю это? Я уверен, что я должен делать что-то немое: - (

4b9b3361

Ответ 1

throw new RuntimeException(msg);

Вам нужно new там. Это создает экземпляр и выбрасывает его, а не вызывает метод.

Ответ 2

An Exception является Object, как и любой другой в Java. Вам нужно использовать ключевое слово new, чтобы создать новый Exception, прежде чем вы сможете throw его.

throw new RuntimeException();

Дополнительно вы также можете сделать следующее:

RuntimeException e = new RuntimeException();
throw e;

Оба фрагмента кода эквивалентны.

Ссылка на учебники для полноты.

Ответ 3

Как и все остальные, создайте объект перед его броском.

Просто хотел добавить один бит; невероятно необычно бросать исключение RuntimeException. Было бы нормально, если бы код в API мог вызывать подкласс этого, но, как правило, код приложения будет генерировать исключение или что-то, что расширяет Exception, но не RuntimeException.

И в ретроспективе я пропустил добавление причины, по которой вы используете исключение вместо RuntimeException; @Jay, в комментарии ниже, добавлен в полезный бит. RuntimeException не является проверенным исключением;

  • Подписи метода не нужно объявлять, что может быть выбрано исключение RuntimeException.
  • Абоненты этого метода не обязаны ловить исключение или признавать его каким-либо образом.
  • Разработчики, которые позже попытаются использовать ваш код, не предвидят эту проблему, если они не будут выглядеть осторожно, и это увеличит нагрузку на обслуживание кода.

Ответ 4

вам нужно будет создать экземпляр, прежде чем бросать его

throw new RuntimeException(arg0) 

PS: Вряд ли достаточно, чтобы IDE Netbeans уже указывала, что ошибка времени компиляции

Ответ 5

throw new RuntimeException(msg); // notice the "new" keyword

Ответ 6

Вам нужно создать экземпляр RuntimeException, используя new так же, как вы бы создали экземпляр большинства других классов:

throw new RuntimeException(msg);

Ответ 7

Просто для других: убедитесь, что это новое RuntimeException, а не новое RuntimeErrorException, которое нуждается в ошибке в качестве аргумента.

Ответ 8

throw new RuntimeException(msg);

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