Home  >  Article  >  Java  >  NumberFormatException in Java

NumberFormatException in Java

WBOY
WBOYOriginal
2024-08-30 16:14:14661browse

The NumberFormatException is an unchecked exception in java that occurs when a user tries to convert a string into a numeric value. The NumberFormatException is a built-in class in java that is defined in the Java.lang.NumberFormatException package. The IllegalArgumentException class is a superclass of the NumberFormatException as it is an unchecked exception, so it is not forced to handle and declare it. The NumberFormatException is actually thrown by the parseXXX() functions when functions are not able to convert or format(convert ) a string into numeric value like integer, float, double etc., because of the format of an input string is illegal and not appropriate. For example, in a Java program, sometimes the user input is accepted through command-line arguments as a text field in the form of a string. And to use this string in some arithmetic operations, it should first parse or convert into data types(specific numeric type) by using the parseXXX() functions of the wrapper classes.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

The hierarchy of NumberFormatException class is:

Object ->Throwable -> Exception ->RuntimeException ->NumberFormatException.

Syntax

The following is the declaration for java.io. PrintWriter class.

public class NumberFormatException extends IllegalArgumentException implements Serializable
{
// Constructors of the NumberFormatException class
}

The above is the syntax of the NumberFormatException, where it is extended to the:

IllegalArgumentException class and implements Serializable

How NumberFormatException work in Java?

When an attempt is made to convert a string into a number, the NumberFormatException occurs. This kind of conversions is performed by using functions like Integer.parseInt(), Float.parseFloat() and all. Suppose we call Integer.parseInt(s) function where s is a type of String and its value is string “30”, so the function converts the string value correctly to an int 30. But what happened? If the value of s is supposed “thirty”, which is illegal, then the function fails and throws an exception: NumberFormatException. To handle this exception, we can write the catch block for it; if an exception is not handled, then the program will crash.

There are Different reasons to throws the NumberFormatException, as we can see below –

  • The provided string to be converting may be null. Ex :Integer.parseInt(null);
  • The provided string may be of length zero. Ex :Integer.parseInt(“”);
  • The provided string maybe has no numeric characters. Ex:Integer.parseInt(“Thirty”);
  • The provided string may be not represents an Integer value. Ex :Integer.parseInt(“FG67”);
  • T The provided string may be empty. Ex :Integer.parseInt(“”);
  • The provided string may be trailing space. Ex :Integer.parseInt(“785”);
  • The provided string may be leading space. Ex :Integer.parseInt(” 785 “);
  • The provided string may be contains alphanumeric. Ex :Long.parseLong(“F5”);
  • The provided string may be data type supported out of range. Ex: Integer.parseInt(“139”);
  • The provided string and the function used to convertmay be of different data types.Ex :Integer.parseInt(“3.56”);

Constructors

  • NumberFormatException(): This constructor create theNumberFormatException withoutdetailed specific message.
  • NumberFormatException(String s): This constructor creates the NumberFormatException with the specific message in detail.

Examples to Implement NumberFormatException in Java

Below are examples to implement:

Example #1

Next, we write the java code to understand the NumberFormatException more clearly with the following example where we create a PrintWriter object by using the PrintWriter class constructor and pass the file name to write in it, as below –

Code:

//package p1;
import java.util.Scanner;
public class Demo
{
public static void main( String[] arg) {
int age;
Scanner sc = new Scanner(System.in);
System.out.println("Please Enter your age : ");
//throws Exception as if the input string is of illegal format for parsing as it as null or alphanumeric.
age = Integer.parseInt(sc.next());
System.out.println("Your age is : " +age);
}
}

Output:

When the user enters “25+”, an output of the above code is:

NumberFormatException in Java

When a user enters not the well-formatted string “25F”, the output is:

NumberFormatException in Java

When a user enters a string “Twenty Five”, the output is:

NumberFormatException in Java

When a user enters a string “null”, the output is:

NumberFormatException in Java

When a user enters string value as a float “40.78”, the output is:

NumberFormatException in Java

When the user enters a string “25”, which is a valid string. The output is:

NumberFormatException in Java

Explanation: As in the above code, the age value is accepted from the user in string format, which further converts into the integer format by using the Integer.parseInt(sc.next()) function. While the user an illegal input string or not a well-formatted string, the NumberFormatException occurs, it throws, and the program terminates unsuccessfully. So to provide the valid string, it should be taken care that an input string should not be null, check an argument string matches the type of the conversion function used and also check if any unnecessary spaces are available; if yes, then trim it and so all care must be taken.

Example #2

Next, we write the java code to understand the NumberFormatException where we generate the NumberFormatException and handle it by using the try-catch block in the program, as below –

Code:

//package p1;
import java.util.Scanner;
public class Demo
{
public static void main( String[] arg) {
int age;
Scanner sc = new Scanner(System.in);
try
{
System.out.println("Please Enter your age : ");
//throws Exception as if the input string is of illegal format for parsing as it as null or alphanumeric.
age = Integer.parseInt(sc.next());
System.out.println("Your age is : " +age);
} catch(NumberFormatException e)
{
System.out.println("The NumberFormatExceptionoccure.");
System.out.println("Please enter the valid age.");
}
}
}

When the user enters a string “23F”, the output is:

NumberFormatException in Java

When a user enters a string “23”, the output is:

NumberFormatException in Java

Explanation: As in the above code try-catch block is used. It is always a good practice to enclose lines of code that can throw an exception in a try-catch block by which it handles the NumberFormatException and prevents it from generating the Exception.

Conclusion

The NumberFormatException in java is an unchecked exception that occurs when a not well-formatted string is trying to converts into a numeric value by using the parseXXX() functions. The NumberFormatException is a built-in class in which is defined in the Java.lang.NumberFormatException package.

The above is the detailed content of NumberFormatException in Java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:Java RuntimeExceptionNext article:Java RuntimeException