NumberFormatException
日本語 | 非数値形式例外 |
英語 | number format exception |
ふりがな | なんばーふぉーまっとえくせぷしょん |
フリガナ | ナンバーフォーマットエクセプション |
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.lang.NumberFormatException。
例外の一種。IntegerクラスのparseInt()メソッド等「文字列形式の整数値を、実際の整数値へと変換する」場合等に投げられる。
RuntimeExceptionクラスのサブクラスであるため、明示的にcatchやthrows指定する必要はない。この例外が発生するよくあるパターンとして「nullや空文字列」を変換しようとして発生する場合が多いため、nullチェックや空文字列チェックを入念に行うことで回避するようにする。
ただし、「文字列が数値に変換できるかどうか」を確認する「適切で簡単な方法」が存在しないこともあり、「数値チェック」の結果「数値ではない」場合にこの例外をcatchして適切な処理をする、という方法も使用される。
例外の一種。IntegerクラスのparseInt()メソッド等「文字列形式の整数値を、実際の整数値へと変換する」場合等に投げられる。
RuntimeExceptionクラスのサブクラスであるため、明示的にcatchやthrows指定する必要はない。この例外が発生するよくあるパターンとして「nullや空文字列」を変換しようとして発生する場合が多いため、nullチェックや空文字列チェックを入念に行うことで回避するようにする。
ただし、「文字列が数値に変換できるかどうか」を確認する「適切で簡単な方法」が存在しないこともあり、「数値チェック」の結果「数値ではない」場合にこの例外をcatchして適切な処理をする、という方法も使用される。
// 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)
}
}
}
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) } } }