v tomto příspěvku budeme diskutovat o Javě.util.InputMismatchException a jak to opravit. InputMismatchException je vyvolána, když se pokoušíte číst tokeny prostřednictvím instance třídy skeneru a načtený vstup neodpovídá vzoru očekávaného typu.
InputMismatchException v Javě
Třída skeneru v Javě může být použita ke čtení vstupu ze souboru, InputStream, cesty nebo řetězce. Skener rozdělí svůj vstup na tokeny pomocí vzoru oddělovače, který ve výchozím nastavení odpovídá mezeře. Tyto tokeny pak mohou být převedeny na hodnoty různých typů pomocí různých dalších metod. Například některé z dalších metod ve třídě skeneru pro čtení dalšího vstupu odpovídajícího datového typu jsou – nextLong(), nextBoolean(), nextByte(), nextDouble(), nextFloat(), nextInt().
když čtete vstup pomocí třídy skeneru pomocí jedné z dalších metod, ale Typ předaného vstupu neodpovídá další metodě použité k získání vstupu, je vyvolána výjimka InputMismatchException. Tato výjimka je také vyvolána, pokud je vstup mimo rozsah. Pokud je například předaný vstup typu String a pokusíte se jej přečíst pomocí metody nextInt (), pak je vyvolána výjimka InputMismatchException.
Java InputMismatchException příklad
v příkladu budete mít vstup od uživatele a pak se zobrazí, zda předané celé číslo je sudé nebo liché. Třída skener se používá, aby se vstup uživatele.
import java.util.Scanner;public class InputMismatchExp { public static void main(String args) { Scanner sc = new Scanner(System.in); System.out.println("Enter a number: "); int i = sc.nextInt(); if(i%2 == 0) { System.out.println("Entered number is even"); }else { System.out.println("Entered number is odd"); } }}
nyní, pokud předáte vstup jako jakýkoli jiný typ, jako je řetězec, bude vyvolána výjimka InputMismatchException.
Enter a number: TwoException in thread "main" java.util.InputMismatchExceptionat java.base/java.util.Scanner.throwFor(Scanner.java:939)at java.base/java.util.Scanner.next(Scanner.java:1594)at java.base/java.util.Scanner.nextInt(Scanner.java:2258)at java.base/java.util.Scanner.nextInt(Scanner.java:2212)at com.knpcode.programs.InputMismatchExp.main(InputMismatchExp.java:10)
How to resolve InputMismatchException
Only way to handle InputMismatchException is to ensure that passed input values are of compatible type.
- StackOverflowError Vs OutOfMemoryError v Javě
- ClassCastException v Javě a rozlišení
- throw Vs hází v Javě zpracování výjimek
- propagace výjimek v Javě
- zpracování výjimek s přepsáním metody v Javě
- Java vyzkoušejte zdroje s příklady
- Java zpracování výjimek Rozhovor Otázky a odpovědi odpovědi
- jak číst oddělený soubor v Javě
to je vše pro téma Inputmismatchexception v Javě a rozlišení. Pokud něco chybí nebo máte o tématu něco sdílet, napište komentář.
mohlo by se vám také líbit
- můžeme přepsat metodu start() v Javě
- jak třídit ArrayList objektů v Javě
- klonování objektů v Javě pomocí metody clone ()
- Typ lití a konverze typu v Javě
- stabilní nebo nestabilní číslo Java Program
- spring-boot-starter-parent v Spring Boot