私はの例をJavaで調べる方法、7eを見ています。 ユーザーは、私がどのようにcatch (NoSuchElementException elementException)
作品を考え出す苦労を持っているクラスAccountRecord record
クラススキャナとその例外がJavaでどのように協調するかを解明する
AccountRecord record = new AccountRecord();
Scanner input = new Scanner(System.in);
while (input.hasNext()) // loop until end-of-file indicator
{
try // output values to file
{
// retrieve data to be output
record.setAccount(input.nextInt()); // read account number
record.setFirstName(input.next()); // read first name
record.setLastName(input.next()); // read last name
record.setBalance(input.nextDouble()); // read balance
.............................................................
catch (NoSuchElementException elementException)
{
System.err.println("Invalid input. Please try again.");
input.nextLine(); // discard input so user can try again
} // end catch
}
のオブジェクトに手動でデータを入力します。 Javaドキュメントによれば、NoSuchElementExceptionこの列挙にそれ以上の要素が存在しない と、EnumerationのnextElementメソッドによってスローされ
あります。
ので、それはまた、ケース型の不一致に例外をスローする理由予想の間、実際に、そのようなrecord.setAccount(input.nextInt())
用として、何を入力すると、ユーザーは、いくつかのテキスト文字列を入力?
ありがとうございます!
なぜInputMismatchExceptionはNoSuchElementExceptionを前になるべきか? Java Docの 'public class InputMismatchException extends NoSuchElementException'によると、したがって、2つのクラス間に明確なis-a関係があります。または私は何かを欠いている!ありがとう! – newprint
catchブロックはorderinで評価されるので、 'InputMismatchException'がスローされた場合、より一般的な' NoSuchElementException'ブロックではなく、意図したブロックによってキャッチされます。 –
はい、あなたは継承について正しいです...私が言っているのは、私は、「InputMismatchException」が 'NoSuchElementException'から継承するとは考えていません。 –