JAVA

[JAVA] try-catch 구문

(งᐛ)ว 2023. 8. 29. 22:58
728x90
728x90

예외처리문법 : 예외를 처리하는 가장 기본적인 문법은 try-catch 구문이다. 

try { 

     예외가 발생할 수 있는 코드 

} catch (예외클래스명 e) { 

     예외처리코드 

}

 

int result = 0;

try {

       result = 10/0;

       System.out.println("계산결과 : "+result);

} catch(ArithmeticException e) {

       System.out.println("0으로 나눌 수 없습니다.");

}

// 0으로 나눌 수 없습니다.

 

 

 

Scanner sc = new Scanner(System.in);

try {

       System.out.print("점수를 입력하세요 : ");

       int score = sc.nextInt();

 

       if(score>=65) {

              System.out.println("합격입니다.");

       } else {

              System.out.println("불합격입니다.");

       }

 

}catch(InputMismatchException e){

       System.out.println("입력이 잘못되었습니다.");

}

System.out.println("종료");


다중 catch문 : catch문을 여러 개 작성하여 예외별로 처리가능

 

Scanner sc = new Scanner(System.in);

 

try {

       int[ ] card = { 4, 5, 1, 2, 7, 8 };

 

       System.out.print("몇번째 카드를 뽑으시겠습니까? : ");

       int cardIndex = sc.nextInt(); // 입력오류가능성 ㅇ

 

       System.out.println("뽑은 카드번호는 " + card[cardIndex - 1]); // 예외발생가능성 ㅇ

 

catch (InputMismatchException e) {

       System.out.println("잘못 입력하셨습니다. 숫자만 입력가능합니다.");

catch (IndexOutOfBoundsException e) {

       System.out.println("해당 번호의 카드는 존재하지 않습니다.");

catch (Exception e) {

       System.out.println("오류");

}

System.out.println("프로그램 종료");


 

finally 블록 : 예외발생 여부와 상관없이 실행되는 구문(고정적으로 출력할 내용)으로 생략가능

예외가 발생해도 정상종료되어야 하는 구문들에서 사용

 

Scanner sc = new Scanner(System.in);

 

try {

       System.out.print("점수를 입력하세요 : ");

       int score = sc.nextInt();

 

       if(score>=65) {

              System.out.println("합격입니다.");

       } else {

              System.out.println("불합격입니다.");

       }

 

}catch(InputMismatchException e){

       System.out.println("입력이 잘못되었습니다.");

}finally{

       System.out.println("종료");

}


1️⃣키보드에서 정수를 입력받고 정수 이외의 값이 입력되면 다음과 같이 출력하기

정수 : 100

결과 : 100

정수 : aa

aa은(는) 정수가 아닙니다.

 

 

 

Scanner sc = new Scanner(System.in);

String str = ""; // 전역변수는 내부에서 사용가능

 

try {

       System.out.print("정수입력 : ");

       str = sc.next(); // 정수처럼 보이지만 사실 문자열. 숫자를 써도 숫자모양의 문자열인 것!

       int num = Integer.parseInt(str); // 문자열을 정수로 변환 //예외발생지점✨✨

       System.out.println("결과 : " + str);

 

} catch (Exception e) {

       System.out.println(str + "은(는) 정수가 아닙니다.");

}

 

 

 

 

 

 

728x90

'JAVA' 카테고리의 다른 글

[JAVA] 제네릭(Generic)  (0) 2023.08.30
[JAVA] 예외 던지기, 임의의 예외처리, 사용자정의 예외처리  (0) 2023.08.30
[JAVA] 예외처리  (1) 2023.08.29
[JAVA] 내부클래스  (0) 2023.08.29
[JAVA] 인터페이스  (0) 2023.08.26