728x90

[문제]

예외 처리로 파스타 집 대기 알림 프로그램 만들기

대기 손님이 10명 이상일 경우 기다려 달라고 하기

10명 이하일 경우 입장 시키기  

 

[차근 차근 생각해보기]

  1. Excpetion 클래스를 상속받는 PleaseWait 클래스 하나 만들기
  2. customer 변수 선언하기
  3. try - catch문 사용하여 조건문과 throw문 사용해보기  
  4. finally 블록으로 감사하다는 문구 출력하기

  

[코드]

public static void main(String[] args) {
    int customer = 11;

    System.out.println("DDONY의 파스타 집 오픈!!");
    System.out.println("총 대기 인원 : " + customer + "명");
    System.out.println("----------------------");
    try {
        if(customer <= 10) {
            System.out.println("차례대로 입장 도와드리겠습니다.");
        }else{
            throw new PleaseWait("한번에 입장 가능한 최대 인원은 10명 입니다.");
        }
    }catch (PleaseWait e){
        System.out.println(e.getMessage());
        System.out.println("조금만 기다려주세요ㅠㅠ");
    }finally {
        System.out.println("\n감사합니다. 좋은 서비스 제공해드리겠습니다");
    }
}


class PleaseWait extends Exception{
    public PleaseWait(String message) {
        super(message);
    }
}

 

[반성할 점]

아직 어디서 어떻게 실전에서 사용해야할지 감이 오질 않는다..

조금 익숙해져 보려고 최대한 여러가지 방법을 사용하여 예외처리를 해보았다.  

728x90

'Java' 카테고리의 다른 글

멀티스레드(Synchronized Thread)  (0) 2023.06.15
스레드(Thread)  (0) 2023.06.15
예외처리(try-catch)  (0) 2023.06.14
박물관 입장료 프로그램  (0) 2023.06.13
스트림(Stream)  (0) 2023.06.13
728x90

[오류]

Java에서 오류는 크게 두 가지로 나눌 수 있다.

컴파일 오류와 런타임 오류이다.

 

1. 컴파일 오류

int num = "String";

코드에 문제가 있어 프로그램이 실행 되지 않은 것을 말한다. 

 

정수 타입 num에 문자열이 들어가려 하면 오류가 날 것이다.

이처럼 코드에 문제가 있어 실행이 되지 않는 것을 컴파일 오류라고 한다.  

 

2. 런타임 오류 

int[] arr = {1, 2, 3};
int arrNum = arr[3];

컴파일은 되지만 실행되는 과정에서 문제가 발생하는 것을 말한다.

 

위 코드처럼 코드에서 작성은 되지만 실행 시켜 보면 인덱스의 범위를 벗어났기 때문에

ArrayIndexOutOfBounds 오류가 날 것이다. 

 

또, 런타임 오류에는 error(에러)와 exception(예외)로 나눌 수 있다.

에러는 메모리 부족이나 스택 오버 플로우와 같은 것을 말하며 작성한 코드로 해결 할 수 없다. 

예외는 NullPointException / ArrayIndexOutOfBoundsException 같은 것들을 말하며 작성한 코드로 해결 할 수 있다.

 

[예외 처리 사용방법]

예외가 발생 하였을때 java에서는 try - catch로 예외 처리를 하거나 throw를 통해 처리할 수 있다. 

 

1. try - catch문

try{

}catch(Exception e){

}finally{

}
  • try 블록에서는 예외가 발생할 수있는 코드를 작성한다.  
  • catch 블록은 예외가 발생했을 때 실행된다. 
    • printStackTrace() 혹은 getMessage()로 에러 메세지를 확인할 수 있다.
    • catch 블록은 여러개 사용할 수 있으며
    •   ArrayIndexOutOfBoundsException, Exception 등 다양한 예외 유형을 넣어 예외 처리할 수 있다. 
  • fianlly블록은 예외가 발생해도 하지 않아도 무조건 실행되는(수행되어야 하는)  블록이다.
  • try - catch 블록은 중첩해서 사용도 가능하다.

 

2. throw 문

public static void main(String[] args) {
    try{
        System.out.println(3 / 0);
        throw new Exception("잘못된 계산 입니다.");
    } catch(ArithmeticException e){
        e.printStackTrace();
    }
}


public static num(int a, int b) throws Exception{
	// 코드..
}
  • throw는 예외를 강제로 발생시킬때 사용된다.
  • 예외가 발생할 경우, 예외 객체를 생성하고 예외를 호출자에게 던진다.
  • throw는 위와 같이 두 가지 방식으로 사용할 수 있고 catch 블록에서 예외를 다시 던질 때 사용될 수 있다.   
728x90

'Java' 카테고리의 다른 글

스레드(Thread)  (0) 2023.06.15
파스타 집 대기 알림 프로그램 만들기  (0) 2023.06.14
박물관 입장료 프로그램  (0) 2023.06.13
스트림(Stream)  (0) 2023.06.13
함수형 인터페이스 (Functional Interface)  (0) 2023.06.13

+ Recent posts