Ваш написанный код полностью детерминирован: он делает то же самое, где бы вы ни запускали его.Таким образом, какие исключения это бросает?Ну, запусти это.Это то, что он бросит, и больше ничего не будет бросать.Как уже говорили другие, этот код, в частности, будет выдавать ConcurrentModificationException
, потому что если вы хотите удалить in-line, вам нужно использовать метод итераторов remove()
(и вы не можете получить доступ к этому методу, если используете *Стиль 1003 *, вместо этого вы должны использовать Iterator<T> it = list.iterator(); while (it.next()) { .. }
.
Если вы хотите общее глубокое погружение в то, какие исключения могут возникать в Java-приложениях, ну, можно написать целые книги на эту тему.просто назовите какой-нибудь случайный материал, который приходит на ум, глядя на этот код:
, если список поврежден кучей, автоматическое приведение к целому числу выдает ClassCastException
. Если в списке есть нули, autounboxвыдаст NullPointerException
. Если бы вы забыли инициализировать список, это выкинуло бы NullPointerException
, иначе компилятор завершился бы с ошибкой «список не инициализирован», в зависимости от того, как вы написали свой код.