프로그래밍

[자바 응용 문제] 예외처리 본문

자바/자바 예제 풀이

[자바 응용 문제] 예외처리

시케 2023. 5. 30. 21:50
728x90
반응형

추상클래스와 인터페이스

교재: 멘토씨리즈 JAVA

377p

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

public class ValueExceptionExample {
	public static void main(String[] args) {

		int data = 10;
		double result = 0;

		result = (double) data / 0;

		if (Double.isInfinite(result)) {
			System.out.println("0으로는 나눌 수 없습니다");
		}
		else {
			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 = 0;
		int data = 0;
		int sum = 0;

		while (count < 5) {
			System.out.println("숫자를 입력하세요: ");
			data = scan.nextInt();
			sum += data;
			count++;
		}
		System.out.println("숫자 합: " + sum);
	}
}

답안코드

import java.util.Scanner;

class MinusValueException extends Exception {
	private String message;

	public MinusValueException(String message) {
		this.message = message;
	}

	public String getMessage() {
		return this.message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

}

public class MinusValueExceptionExample {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int count = 0;
		int data = 0;
		int sum = 0;

		while (count < 5) {
			try {
				System.out.println("숫자를 입력하세요: ");
				data = scan.nextInt();
				if (data < 0) {
					throw new MinusValueException("음수는 입력할 수 없습니다");
				}
				sum += data;
				count++;
			} catch (MinusValueException e) {
				scan.nextLine();
				System.out.println(e.getMessage());
			}
		}
		System.out.println("숫자 합: " + sum);
	}
	
}

답안 코드

package section12;

abstract class Bike {
	int wheel;
	
	Bike(int wheel) {
		this.wheel = wheel;
	}
	
	void info() {
		System.out.println("이 자전거는 "+wheel+"발 자전거입니다.");
	}
}

class ChildBike extends Bike {
	ChildBike(int wheel) {
		super(wheel);
	}
}

public class PRACTICE_12_02 {

	public static void main(String[] args) {
		Bike b = new ChildBike(2);
		
		ChildBike cb = new ChildBike(4);
		cb.info();
	}

}
728x90
반응형
Comments