[JAVA] try-catch Exception (예외처리)

2024. 7. 24. 17:15·JAVA

자바는 객체지향 언어이므로 프로그램에서 발생하는 예외들은 클래스의 형태로 제공된다.

다음은 예외처리에 대한 클래스 관계도이다.

 

 

 

최상위의 Throwable을 상속받은 에러와 예외가 있다. 에러는 시스템상의 심각한 수준의 오류이기 때문에 수습될 수 없는 반면에, 예외는 개발자가 로직을 추가하여 처리할 수 있다.

 

try - catch 구문

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

아래는 try - catch 기본 구조이다.

 

try {
             // 예외가 발생할 가능성이 있는 코드

} catch (예외클래스명 e) {
			// 예외 처리 코드

}

 

 

아래는 try - catch 구문 예시이다.

public class Test02 {
	   public static Scanner sc=new Scanner(System.in);
	   
	   public static int makeNum(int[] datas) {
	      int num;
	      while(true) {
	         try {      
	            System.out.print("정수 1 >> ");
	            num=sc.nextInt();
	         }
	         catch(InputMismatchException e) { // 예시 - 문자열을 입력한 경우
	            sc.nextLine();
	            System.out.println("다시 입력해주세요!");
	            continue;
	         }

	         break;
	      }
	      try {
	         num=datas[num];
	      }
	      catch(ArrayIndexOutOfBoundsException e) { // 예시 - 배열에서 없는 인덱스번호를 입력한 경우
	         System.out.print("없는 인덱스 번호를 입력해서 ");
	         System.out.println("[0]의 값으로 설정했습니다.");
	         num=datas[0];
	      }
	      return num;
	   }
	   
	   public static void main(String[] args) {

	      int[] datas = {10,0,-1,2,3};

	      int num1=makeNum(datas);
	      int num2=makeNum(datas);

	      try {
	         int res=num1/num2;
	         System.out.println(num1+" / "+num2+" = "+res);
	      }
	      catch(ArithmeticException e) { // 예시 - 0으로 나눈 경우
	         System.out.println("0으로는 나누기를 수행할 수 없습니다.");
	      }

	   }


}

'JAVA' 카테고리의 다른 글

[JAVA] 파일 입출력 예제  (0) 2024.07.25
[JAVA] 스레드 Thread  (1) 2024.07.24
[JAVA] 예제 - 응집도와 결합도를 고려해 학생부 프로그램 만들기  (0) 2024.07.18
[JAVA] 예제 - ArrayList를 이용하여 학생부 프로그램 만들기  (0) 2024.07.15
[JAVA] ArrayList, Map  (0) 2024.07.15
'JAVA' 카테고리의 다른 글
  • [JAVA] 파일 입출력 예제
  • [JAVA] 스레드 Thread
  • [JAVA] 예제 - 응집도와 결합도를 고려해 학생부 프로그램 만들기
  • [JAVA] 예제 - ArrayList를 이용하여 학생부 프로그램 만들기
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    어노테이션
    Di
    이벤트 스케줄러
    @service
    2-layered 아키텍처
    오블완
    MVC
    ViewResolver
    오버로딩
    상속
    aop
    jsp
    recoverabledataaccessexception
    수제비
    html
    DispatcherServlet
    codeup 4891 : 행복
    @Component
    멘토씨리즈 자바
    Spring
    객체지향
    정보처리기사 실기
    java
    티스토리챌린지
    정보처리기사
    정처기
    스프링 프레임워크
    정처기 실기
    @repository
    생성자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
[JAVA] try-catch Exception (예외처리)
상단으로

티스토리툴바