Le NumberFormatException est une exception non vérifiée en Java qui se produit lorsqu'un utilisateur tente de convertir une chaîne en valeur numérique. NumberFormatException est une classe intégrée à Java définie dans le package Java.lang.NumberFormatException. La classe IllegalArgumentException est une superclasse de NumberFormatException car il s'agit d'une exception non vérifiée, elle n'est donc pas obligée de la gérer et de la déclarer. L'exception NumberFormatException est en fait levée par les fonctions parseXXX() lorsque les fonctions ne sont pas capables de convertir ou de formater (convertir) une chaîne en valeur numérique comme un entier, un flottant, un double, etc., car le format d'une chaîne d'entrée est illégal et non approprié. . Par exemple, dans un programme Java, la saisie de l'utilisateur est parfois acceptée via des arguments de ligne de commande sous forme de champ de texte sous la forme d'une chaîne. Et pour utiliser cette chaîne dans certaines opérations arithmétiques, elle doit d'abord analyser ou convertir en types de données (type numérique spécifique) en utilisant les fonctions parseXXX() des classes wrapper.
Commencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
La hiérarchie de la classe NumberFormatException est :
Objet ->Lavable -> Exception ->RuntimeException ->NumberFormatException.
Syntaxe
Ce qui suit est la déclaration pour java.io. Classe PrintWriter.
public class NumberFormatException extends IllegalArgumentException implements Serializable { // Constructors of the NumberFormatException class }
Ce qui précède est la syntaxe de NumberFormatException, où elle est étendue à :
IllegalArgumentException class and implements Serializable
Lorsqu'une tentative est faite pour convertir une chaîne en nombre, l'exception NumberFormatException se produit. Ce type de conversions est effectué à l'aide de fonctions telles que Integer.parseInt(), Float.parseFloat() et toutes. Supposons que nous appelions la fonction Integer.parseInt(s) où s est un type de chaîne et sa valeur est la chaîne « 30 », de sorte que la fonction convertit correctement la valeur de la chaîne en un int 30. Mais que s'est-il passé ? Si la valeur de s est supposée « trente », ce qui est illégal, alors la fonction échoue et lève une exception : NumberFormatException. Pour gérer cette exception, nous pouvons écrire le bloc catch correspondant ; si une exception n'est pas gérée, le programme plantera.
Il existe différentes raisons de lancer l'exception NumberFormatException, comme nous pouvons le voir ci-dessous –
Voici des exemples à mettre en œuvre :
Ensuite, nous écrivons le code Java pour comprendre plus clairement l'exception NumberFormatException avec l'exemple suivant dans lequel nous créons un objet PrintWriter en utilisant le constructeur de classe PrintWriter et transmettons le nom du fichier pour y écrire, comme ci-dessous –
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); } }
Sortie :
Lorsque l'utilisateur saisit « 25+ », une sortie du code ci-dessus est :
Lorsqu'un utilisateur ne saisit pas la chaîne « 25F » bien formatée, le résultat est :
Lorsqu'un utilisateur saisit une chaîne « Vingt-cinq », le résultat est :
Lorsqu'un utilisateur saisit une chaîne « null », le résultat est :
Lorsqu'un utilisateur saisit une valeur de chaîne sous la forme d'un flottant « 40,78 », le résultat est :
When the user enters a string “25”, which is a valid string. The output is:
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.
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:
When a user enters a string “23”, the output is:
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.
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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!