InputMismatchException

InputMismatchException

์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ InputMismatchException์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ด ์˜ˆ์™ธ๋Š” Scanner๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ์ฝ์„ ๋•Œ, ์˜ˆ์ƒํ•œ ์œ ํ˜•๊ณผ ๋‹ค๋ฅธ ์œ ํ˜•์˜ ์ž…๋ ฅ์ด ๋“ค์–ด์™”์„ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด while ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์˜ฌ๋ฐ”๋ฅธ ์ž…๋ ฅ์„ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ ์ž…๋ ฅ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
try-catch ๋ธ”๋ก ๋‚ด์—์„œ InputMismatchException์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์˜ ์ž…๋ ฅ์„ ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ,
Scanner์˜ nextLine() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ๋ฒ„ํผ๋ฅผ ๋น„์›Œ์ค๋‹ˆ๋‹ค. ๊ทธ ํ›„, ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ์ž…๋ ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

Scanner scanner = null;
int number = 0;
		
while(true) { 
    scanner = new Scanner(System.in);

    try {  
        System.out.print("์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: "); 
        number = scanner.nextInt();
        break;
    } catch (InputMismatchException e) {
        System.out.println("์ž˜๋ชป๋œ ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค. ์ •์ˆ˜๋งŒ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.");
        scanner.nextLine(); // ์ž…๋ ฅ ๋ฒ„ํผ ๋น„์šฐ๊ธฐ
    }
}
		
System.out.println("์ž…๋ ฅํ•œ ์ •์ˆ˜: " + number);
scanner.close();

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ •์ˆ˜ ์ด์™ธ์˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋”๋ผ๋„ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๊ณ„์†ํ•ด์„œ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์˜ฌ๋ฐ”๋ฅธ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ: Say It!, IT-story๋ฅผ ๋งํ•˜๋‹ค

Leave a comment