Создайте свой собственный удобный метод для использования в настоящее время и в будущем:
public static int parseInt(final /*@Nullable*/ String s, final int valueIfInvalid) {
try {
if (s == null) {
return valueIfInvalid;
} else {
return Integer.parseInt(s);
}
} catch (final NumberFormatException ex) {
return valueIfInvalid;
}
}
Есть ли метод, который я могу вызвать, который сообщит мне, если Integer.parseInt () сгенерирует исключение NumberFormatException перед вызовомЭто?Тогда у меня не было бы проблем с регистрацией этого, так как это никогда не должно происходить.
Не то, что я знаю.Имейте в виду, что если они были, вы, скорее всего, в итоге проанализируете значение дважды (один раз для проверки и один раз для его анализа).Я понимаю, что вы хотите избежать исключения, но в этом случае ловит исключение - это стандартная идиома в Java, и она не предоставляет другую (по крайней мере, я знаю).
Если я просто не поймаю исключение, будет ли назначен валидный?Затем я просто инициализирую его значением, которое мне нужно, когда оно не является числом, и не перехватит исключение.
Вы должны перехватить исключение (даже если оно ничего не делает), иначе оно выйдет из блокаи выкинуть через стек.
Есть ли способ как-то явно пометить исключение, что меня это не волнует?Я думаю, что это будет что-то похожее на AWTEvent.consume ().Если так, то я сделаю это так, чтобы Google CodePro не воспринимал это как «незарегистрированный».
Я не знаю ни одного.Я бы использовал описанный выше удобный метод (у меня есть нечто похожее в небольшой коллекции общих утилит, которые я могу использовать для всех своих проектов).
Я бы не регистрировал это, если это действительно нормальное условие, что выобрабатывают.Я не знаком с Google CodePro, но я надеюсь, что есть способ подавить предупреждение, например, какое-нибудь аннотация / ключевое слово @SuppressWarnings ("xxx").
Редактировать: Я хотел бы указать на эти комментарии в комментариях ниже
Этот подход все еще не обрабатывает исключение.Плохо ловить исключение и ничего с ним не делать.Вот почему я ищу лучшее решение
.
... Исключение (ситуация) обрабатывается путем возвратауказанное значениеIfInvalid. «плохая форма» , о которой вы говорите, о плохой практике слепого и бездумного написания пустых блоков улова и никогда не возвращаются к истинному рассмотрению и рассмотрению дела.Если рассматривается исключительная ситуация и она правильно делает для ситуации (, даже если правильно ничего не делать ), то вы "обработали" исключение.