Во-первых, кто бы вам ни сказал
Исключения во время выполнения никогда не должны быть перехвачены
не знает много о Java. Не слушайте их - они не правы.
NumberFormatException, являющееся исключением во время выполнения: непроверенные исключения выбраны потому, что они указывают на ошибку программирования . Можно * узнать до вызова Integer.parseInt()
(например), что String является действительным целым числом, например вот только один способ:
if (str.matches("^\\d{1,8}$") {
int myInt = Integer.parseInt(str); // will never throw NumberFormatException
}
Следовательно, это может считаться ошибкой программирования, чтобы когда-либо ее получать - программист решил , а не проверить в первую очередь.
Если вы не уверены в целостности / качестве строки, которую собираетесь анализировать, ее легко поймать:
try {
// parse your string
} catch (NumberFormatException e) {
// do something about it
}
Другая причина сделать его исполняющим - это то, что он не загромождает код потенциально ненужными блоками try/catch
, если вы уверены, что его не получите, например. если полностью доверять источнику данных String.