Java中的InputMisMatchException是什麼?如何處理它?
從Java 1.5開始引入Scanner類。此類接受File、InputStream、Path和String物件,使用正則表示式逐個讀取所有基本資料型別和字串(來自給定的源)。
使用此類提供的nextXXX()方法(例如nextInt()、nextShort()、nextFloat()、nextLong()、nextBigDecimal()、nextBigInteger()、nextLong()、nextShort()、nextDouble()、nextByte()、nextFloat()、next())從源讀取各種資料型別。
當您使用Scanner類從使用者獲取輸入時,如果傳遞的輸入與方法不匹配,則會丟擲InputMisMatchException異常。例如,如果您使用nextInt()方法讀取整數資料,而傳遞的值是字串,則會發生異常。
示例
import java.util.Scanner;
public class StudentData{
int age;
String name;
public StudentData(String name, int age){
this.age = age;
this.name = name;
}
public void display() {
System.out.println("Name of the student is: "+name);
System.out.println("Age of the student is: "+age);
}
public static void main (String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("Enter your name: ");
String name = sc.next();
System.out.println("Enter your age: ");
int age = sc.nextInt();
StudentData obj = new StudentData(name, age);
obj.display();
}
}執行時異常
Enter your name: Krishna Enter your age: twenty Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at july_set3.StudentData.main(StudentData.java:20)
處理輸入不匹配異常
處理此異常的唯一方法是確保在傳遞輸入時輸入正確的值。建議在使用Scanner類從使用者讀取資料時,詳細說明所需的值。
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP