JavaA2Z

KAB-studio > プログラミング > JavaA2Z > NumberFormatExceptionとは

NumberFormatException

日本語 非数値形式例外
英語 number format exception
ふりがな なんばーふぉーまっとえくせぷしょん
フリガナ ナンバーフォーマットエクセプション

解説

J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.lang.NumberFormatException。
例外の一種。IntegerクラスのparseInt()メソッド等「文字列形式の整数値を、実際の整数値へと変換する」場合等に投げられる
RuntimeExceptionクラスサブクラスであるため、明示的catchthrows指定する必要はない。この例外が発生するよくあるパターンとして「nullや空文字列」を変換しようとして発生する場合が多いため、nullチェックや空文字列チェックを入念にうことで回避するようにする。
ただし、「文字列が数値に変換できるかどうか」を確認する「適切で簡単な方法」が存在しないこともあり、「数値チェック」の結果「数値ではない」場合にこの例外catchして適切な処理をする、という方法も使用される。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // NumberFormatExceptionを投げます。
            int i = Integer.parseInt( "あ" );
        }
        catch( NumberFormatException e )
        {
            // 投げられたNumberFormatExceptionを拾いました。
            e.printStackTrace();
            // java.lang.NumberFormatException: For input string: "あ"
            //     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
            //     at java.lang.Integer.parseInt(Integer.java:426)
            //     at java.lang.Integer.parseInt(Integer.java:476)
            //     at Sample.main(Sample.java:9)
        }

        try
        {
            // 空文字列の場合にも投げられます。
            int i = Integer.parseInt( "" );
        }
        catch( NumberFormatException e )
        {
            e.printStackTrace();
            // java.lang.NumberFormatException: For input string: ""
            //     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
            //     at java.lang.Integer.parseInt(Integer.java:447)
            //     at java.lang.Integer.parseInt(Integer.java:476)
            //     at Sample.main(Sample.java:25)
        }

        try
        {
            // nullの場合にも投げられます。
            int i = Integer.parseInt( null );
        }
        catch( NumberFormatException e )
        {
            e.printStackTrace();
            // java.lang.NumberFormatException: For input string: ""
            //     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
            //     at java.lang.Integer.parseInt(Integer.java:447)
            //     at java.lang.Integer.parseInt(Integer.java:476)
            //     at Sample.main(Sample.java:25)
        }
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // NumberFormatExceptionを投げます。
            int i = Integer.parseInt( "あ" );
        }
        catch( NumberFormatException e )
        {
            // 投げられたNumberFormatExceptionを拾いました。
            e.printStackTrace();
            // java.lang.NumberFormatException: For input string: "あ"
            //     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
            //     at java.lang.Integer.parseInt(Integer.java:426)
            //     at java.lang.Integer.parseInt(Integer.java:476)
            //     at Sample.main(Sample.java:9)
        }

        try
        {
            // 空文字列の場合にも投げられます。
            int i = Integer.parseInt( "" );
        }
        catch( NumberFormatException e )
        {
            e.printStackTrace();
            // java.lang.NumberFormatException: For input string: ""
            //     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
            //     at java.lang.Integer.parseInt(Integer.java:447)
            //     at java.lang.Integer.parseInt(Integer.java:476)
            //     at Sample.main(Sample.java:25)
        }

        try
        {
            // nullの場合にも投げられます。
            int i = Integer.parseInt( null );
        }
        catch( NumberFormatException e )
        {
            e.printStackTrace();
            // java.lang.NumberFormatException: For input string: ""
            //     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
            //     at java.lang.Integer.parseInt(Integer.java:447)
            //     at java.lang.Integer.parseInt(Integer.java:476)
            //     at Sample.main(Sample.java:25)
        }
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/03/24
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。