Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでNumberFormatException(チェックされていない)を処理する方法は?


NumberFormatException 未チェックです 例外 parseXXX()によってスローされます フォーマットできない場合のメソッド (変換)文字列を数値に変換

NumberFormatException 多くのメソッド/コンストラクターによってスローされる可能性があります java.langのクラスで パッケージ。以下はその一部です。

  • public static int parseInt(String s)throws NumberFormatException
  • public static Byte valueOf(String s)throws NumberFormatException
  • public static byte parseByte(String s)throws NumberFormatException
  • public static byte parseByte(String s、int radix)はNumberFormatExceptionをスローします
  • public Integer(String s)はNumberFormatExceptionをスローします
  • public Byte(String s)はNumberFormatExceptionをスローします

メソッドごとに定義された状況があり、 NumberFormatExceptionをスローする可能性があります 。たとえば、 public static int parseInt(String s)throws NumberFormatException いつ

  • 文字列sがnullであるか、sの長さがゼロです。
  • 文字列に数字以外の文字が含まれている場合。
  • 文字列の値は整数を表していません。

例1

public class NumberFormatExceptionTest {
   public static void main(String[] args){
      int x = Integer.parseInt("30k");
      System.out.println(x);
   }
}

出力

Exception in thread "main" java.lang.NumberFormatException: For input string: "30k"
       at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
       at java.lang.Integer.parseInt(Integer.java:580)
       at java.lang.Integer.parseInt(Integer.java:615)
       at NumberFormatExceptionTest.main(NumberFormatExceptionTest.java:3)


NumberFormatExceptionの処理方法

NumberFormatExceptionを処理できます 2つの方法で

  • NumberFormatExceptionを引き起こす可能性のあるコードを囲むtryandcatchブロックを使用します 。
  • )例外を処理する別の方法は、スローを使用することです。 キーワード。

例2

public class NumberFormatExceptionHandlingTest {
   public static void main(String[] args) {
      try {
         new NumberFormatExceptionHandlingTest().intParsingMethod();
      } catch (NumberFormatException e) {
         System.out.println("We can catch the NumberFormatException");
      }
   }
   public void intParsingMethod() throws NumberFormatException{
      int x = Integer.parseInt("30k");
      System.out.println(x);
   }
}

上記の例では、メソッド intParsingMethod() Integer.parseInt(“ 30k”)によってスローされる例外オブジェクトをスローします main()である呼び出しメソッドに この場合の方法。

出力

We can catch the NumberFormatException

  1. JavaでArithmeticException(チェックされていない)を処理する方法は?

    java.lang.ArithmeticException 未チェックの例外です Javaで。通常、 java.lang.ArithmeticException:/ by zeroに遭遇します。 これは、2つの数値を除算することを試みたときに発生します。 分母の数はゼロです 。 ArithmeticException オブジェクトはJVMによって構築される場合があります 。 例1 public class ArithmeticExceptionTest {    public static void main(String[] args) {    

  2. Javaでランタイム例外を処理する方法は?

    ランタイム例外は、Javaプログラミング言語のすべての例外の親クラスであり、発生したときにプログラムまたはアプリケーションをクラッシュまたは破壊することが予想されます。ランタイム例外と見なされない例外とは異なり、ランタイム例外はチェックされません。 ランタイム例外は通常、プログラムが処理することが期待される状態ではなく、プログラマーのエラーを示します。ランタイム例外は、発生しない状態が発生した場合にも使用されます。プログラムのメモリが不足すると、ランタイム例外として表示されるのではなく、プログラムエラーがスローされることに注意してください。 最も一般的なランタイム例外はNullPointe