NumberFormatExceptionとは?Java初心者の勉強

NumberFormatExceptionについて見当もつかなかったので調べてみました。

NumberFormatExceptionとは

NumberFormatExceptionは直訳すると数次のフォーマットの例外となります。
文字列(String)を数値型(intとか)に変換しようとしたときに、文字列の形式が正しくない(文字列を数値に変換できない ex. 英語、日本語、記号とか )場合にスローされます。

文字列の形式が正しくないとは

サンプルコードを見ながら文字列の形式が正しくない時を確認してみましょう。

サンプルコード

String str = "あいう";
int i = Integer.parseInt(str);
System.out.println(i);

実行結果

java.lang.NumberFormatException: For input string: "あいう"

ひらがなを数値に変換できないのでNumberFormatExceptionが発生しています。

回避策

try{
    String str = "あいう";
    int i = Integer.parseInt(str);
    System.out.println(i);
}catch(NumberFormatException e){
    System.out.println("数値に変換できません。");
}

try-catch文で囲うと実行時エラーが発生しなくなります。

おわり

わかってしまえば簡単なのですが、見たこと無い例外が発生すると少し焦ってしまいます。

参考

https://docs.oracle.com/javase/jp/7/api/java/lang/NumberFormatException.html

Java

Posted by Nakamoto