Maison > Java > javaDidacticiel > le corps du texte

NumberFormatException en Java

WBOY
Libérer: 2024-08-30 16:14:14
original
719 Les gens l'ont consulté

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
}
Copier après la connexion

Ce qui précède est la syntaxe de NumberFormatException, où elle est étendue à :

IllegalArgumentException class and implements Serializable
Copier après la connexion

Comment fonctionne NumberFormatException en Java ?

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 –

  • La chaîne fournie à convertir peut être nulle. Ex :Integer.parseInt(null);
  • La chaîne fournie peut être de longueur nulle. Ex :Integer.parseInt("");
  • La chaîne fournie ne contient peut-être pas de caractères numériques. Ex:Integer.parseInt(« Trente »);
  • La chaîne fournie peut ne pas représenter une valeur entière. Ex :Integer.parseInt("FG67");
  • T La chaîne fournie peut être vide. Ex :Integer.parseInt("");
  • La chaîne fournie peut être un espace de fin. Ex :Integer.parseInt("785");
  • La chaîne fournie peut être un espace de début. Ex :Integer.parseInt(” 785 “);
  • La chaîne fournie peut contenir des caractères alphanumériques. Ex :Long.parseLong("F5");
  • La chaîne fournie peut être un type de données pris en charge hors plage. Ex : Integer.parseInt("139");
  • La chaîne fournie et la fonction utilisée pour convertir peuvent être de types de données différents.Ex :Integer.parseInt(“3.56”);

Constructeurs

  • NumberFormatException() : Ce constructeur crée l'exceptionNumberFormatException sans message spécifique détaillé.
  • NumberFormatException(String s): Ce constructeur crée l'exception NumberFormatException avec le message spécifique en détail.

Exemples pour implémenter NumberFormatException en Java

Voici des exemples à mettre en œuvre :

Exemple n°1

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);
}
}
Copier après la connexion

Sortie :

Lorsque l'utilisateur saisit « 25+ », une sortie du code ci-dessus est :

NumberFormatException en Java

Lorsqu'un utilisateur ne saisit pas la chaîne « 25F » bien formatée, le résultat est :

NumberFormatException en Java

Lorsqu'un utilisateur saisit une chaîne « Vingt-cinq », le résultat est :

NumberFormatException en Java

Lorsqu'un utilisateur saisit une chaîne « null », le résultat est :

NumberFormatException en Java

Lorsqu'un utilisateur saisit une valeur de chaîne sous la forme d'un flottant « 40,78 », le résultat est :

NumberFormatException en Java

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

NumberFormatException en 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.");
}
}
}
Copier après la connexion

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

NumberFormatException en Java

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

NumberFormatException en 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.

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!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal