Я пытаюсь создать исключение в моем коде вот так:
throw RuntimeException(msg);
Но когда я встраиваю NetBeans, я получаю следующую ошибку:
C:\....java:50: cannot find symbol
symbol : method RuntimeException(java.lang.String)
location: class ...
throw RuntimeException(msg);
1 error
Нужно ли мне что-то импортировать? Я неправильно написала? Я уверен, что должен делать что-то глупое: - (
throw new RuntimeException (msg);
Вам нужен новый
там. Он создает экземпляр и бросает его, а не вызывает метод.
вам нужно будет создать его экземпляр перед тем, как выбросить
throw new RuntimeException(arg0)
PS: Интересно, что в среде IDE Netbeans уже должна была быть указана эта ошибка времени компиляции
Исключение
представляет собой объект
, как и любой другой объект в Java. Вам необходимо использовать ключевое слово new
, чтобы создать новое исключение
, прежде чем вы сможете выбросить
его.
throw new RuntimeException();
При желании вы также можете сделать следующее:
RuntimeException e = new RuntimeException();
throw e;
Оба фрагмента кода эквивалентны.
throw new RuntimeException(msg); // notice the "new" keyword
Вам необходимо создать экземпляр RuntimeException, используя new
так же, как если бы вы создавали экземпляры большинства других классов:
throw new RuntimeException(msg);
Как все уже сказали, инстанцируйте объект, прежде чем бросать его.
Хотел добавить еще кое-что; невероятно редко бросается RuntimeException. Было бы нормально, если бы код API выбрасывал подкласс этого класса, но обычно код приложения выбрасывает Exception или что-то, что расширяет Exception, но не RuntimeException.
И, оглядываясь назад, я пропустил добавление причины почему вы используете Exception вместо RuntimeException; @Jay, в комментарии ниже, добавил полезную часть. RuntimeException не является проверяемым исключением;