まず、あなたに言った人は誰でも
実行時例外はキャッチされるべきではありません
Javaについてはよくわかりません。彼らの言うことを聞かないでください - 彼らは間違っています。
実行時例外である NumberFormatException:プログラミング エラーを示すため、未チェックの例外が選択されます。Stringが有効な整数であることを (たとえば)呼び出す前に知ることができます。たとえば、次の 1 つの方法があります。Integer.parseInt()
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
}
これをランタイムにするもう 1 つの理由は、不要な可能性のあるブロックでコードが乱雑にtry/catch
ならないようにするためです。たとえば、文字列データのソースを完全に信頼する場合など、不要なブロックを取得しないと確信している場合です。