📌 Exception Exam1
package chap9;
import java.util.InputMismatchException;
import java.util.Scanner;
/*
* 1. 화면에서 1부터 10까지의 숫자를 입력받아 숫자만큼 *출력하는 프로그램 작성하기
* 입력값이 숫자가 아닌경우 InputMismatchException 예외가 발생됨.
* 숫자만 입력하세요 메서지 출력하고, 다시 입력받도록 구현하기
* catch 블럭 scan.next(); 추가
*
* 2. 입력값이 1 ~ 10사이의 숫자가 아닌경우 예외 발생
*/
public class Exam1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num;
boolean endable = false;
while(!endable) {
try {
System.out.println("1~10사이의 숫자를 입력하세요");
num = scan.nextInt(); //InputMismatchException
if(num < 1 || num > 10) {
throw new Exception("1에서 10사이의 숫자만 가능합니다."); //예외 강제 발생
}
for(int i=0;i<num;i++) {
System.out.print("*");
}
System.out.println();
endable=true;
} catch (InputMismatchException e) {
scan.next(); //잘못된 문자 입력.
System.out.println("숫자만 입력하세요");
} catch(Exception e) {
// e.getMessage() : 1에서 10사이의 숫자만 가능합니다.
System.out.println(e.getMessage());
}
}
System.out.println("프로그램 종료");
}
}
📌 Exception Exam2
package chap9;
/* 컴파일 오류 수정하기
* 1. try catch 구문으로 예외 처리하기
* 2. throws 구문으로 예외 처리하기
* 3. 예외처리 생략 가능하도록 RuntimeException 클래스의 하위클래스로 생성
*/
class MyException extends RuntimeException { //=> RuntimeException 하위클래스
int pos;
MyException(String msg,int pos) {
super(msg);
this.pos = pos;
}
public int getPos() {
return pos;
}
//getMessage() 메서드를 오버라이딩. => pos의 값을 출력하기.
// @Override
// public String getMessage() {
// return super.getMessage() + ":"+pos + "라인";
// }
@Override
public String getMessage() {
return super.getMessage() + ":"+pos + "라인";
}
}
public class Exam2 {
public static void main(String[] args) {
first();
}
private static void first() {
/* 1
try {
throw new MyException("예외 강제 발생");
}catch(MyException e) {
e.printStackTrace();
}
*/
throw new MyException("예외 강제 발생",29); //예외처리 생략 가능 예외클래스로 생성
}
}
📌 Exception Exam3
package chap9;
class MyException1 extends Exception {}
class MyException2 extends MyException1 {}
class MyException3 extends Exception {}
public class Exam3 {
public static void main(String[] args) {
try {
if(false)
throw new MyException3(); //Exception 예외처리 출력
else
throw new MyException2(); //MyException1 예외처리 출력
} catch(MyException1 e) {
System.out.println("MyException1 예외처리 ");
} catch(Exception e) {
System.out.println("Exception 예외처리 ");
}
}
}
'수업(국비지원) > Java' 카테고리의 다른 글
| [Java] chap10 : 내부 클래스 - 람다(Lambda) (0) | 2023.04.16 |
|---|---|
| [Java] chap10 : 내부 클래스 - 내부 클래스 (0) | 2023.04.16 |
| [Java] chap9 : 예외처리 - Exception6(오버라이딩에서 예외처리), Exception7(예외클래스 생성) (0) | 2023.04.16 |
| [Java] chap9 : 예외처리 - Exception5(throw) (0) | 2023.04.15 |
| [Java] chap9 : 예외처리 - Exception4(throws) (0) | 2023.04.15 |