[멘토씨리즈 자바] 14 예외 처리 응용문제

2024. 7. 29. 17:17·책/멘토씨리즈 자바

1. 다음 코드는 컴파일 오류가 발생합니다. 오류를 확인하고 예외 처리 문법을 사용하여 해결해보세요.

public class valueExceptionExample {
	public static void main(String[] args) {
    	int data = 10;
        double result = 0;
        
        result = (double)data / 0;
        
        System.out.println("결과는 : " + result);
    }
}

 

0으로는 나눌 수 없다. ( ArithmeticException e)


public class ValueExceptionExample {
	public static void main(String[] args) {
		int data = 10;
		double result = 0;

		try {
			// 0으로 나누는 연산은 예외를 발생시킬 수 있으므로 try 블록에 포함
			result = (double) data / 0;
		} catch (ArithmeticException e) {
			// 예외가 발생했을 때 실행되는 블록
			System.out.println("예외 발생: " + e.getMessage());
		} finally {

			// 예외가 발생하더라도 결과를 출력
			System.out.println("결과는 : " + result);
		}
	}
}

 

 

2. 다음 코드에서 사용자가 음수를 입력할 경우 임의로 예외를 발생시켜 음수의 값을 합산에 포함되지 않도록 처리해 보세요.

 

import java.util.Scanner;
public class MinusValueExceptionExample {
	public static void main(String[] args) {
    	Scanner scan = new Scanner(System.in);
        int count = 5;
        int data = 0;
        int sum = 0;
        while(count < 5) {
        	System.out.println("숫자를 입력하세요:");
            data = scan.nextInt();
            sum += data;
        }
        System.out.println("숫자 합 : " + sum);
    }
}

 

NegativeValueException이라는 사용자 정의 예외 클래스를 만들어서 해결했다.

import java.util.Scanner;

public class MinusValueExceptionExample {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int count = 0; // 5개의 숫자를 입력받기 위한 카운트
        int data = 0;
        int sum = 0;

        while (count < 5) {
            System.out.println("숫자를 입력하세요:");
            try {
                data = scan.nextInt();
                
                // 음수 값이 입력된 경우 예외 발생
                if (data < 0) {
                    throw new NegativeValueException("음수는 입력할 수 없습니다. 입력된 값: " + data);
                }
                
                sum += data;
                count++;
            } catch (NegativeValueException e) {
                // 음수가 입력된 경우 예외 메시지를 출력하고 다시 입력 받기
                System.out.println(e.getMessage());
            }
        }
        
        System.out.println("숫자 합 : " + sum);
        scan.close(); // Scanner 객체 닫기
    }
}


// 사용자 정의 예외 클래스
class NegativeValueException extends Exception {
    public NegativeValueException(String message) {
        super(message);
    }
}

 

'책 > 멘토씨리즈 자바' 카테고리의 다른 글

[멘토씨리즈 자바] 15 기본 API 클래스 응용문제  (0) 2024.07.29
[멘토씨리즈 자바] 13 내부클래스 응용문제  (0) 2024.07.29
[멘토씨리즈 자바] 12 추상클래스와 인터페이스 응용문제  (2) 2024.07.24
[멘토씨리즈 자바] 11 다형성과 타입 변환 응용문제  (2) 2024.07.23
[멘토씨리즈 자바] 10 상속 응용문제  (0) 2024.07.22
'책/멘토씨리즈 자바' 카테고리의 다른 글
  • [멘토씨리즈 자바] 15 기본 API 클래스 응용문제
  • [멘토씨리즈 자바] 13 내부클래스 응용문제
  • [멘토씨리즈 자바] 12 추상클래스와 인터페이스 응용문제
  • [멘토씨리즈 자바] 11 다형성과 타입 변환 응용문제
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
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
[멘토씨리즈 자바] 14 예외 처리 응용문제
상단으로

티스토리툴바