Java/Day22

    [Java] MenuException

    [ MenuException ] import java.util.Scanner; public class MenuMain { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int menu = 0; while (true) { System.out.println("1.메뉴2.메뉴3.메뉴4.메뉴"); menu = sc.nextInt(); try { if(menu 4) throw new MenuException(menu); switch (menu) { case 1: break; default: break; } } catch (MenuException e) { System.out.println(e.ge..

    [Java] 단계별 프로젝트 - 전화번호 관리 프로그램 06단계

    [ 전화번호 관리 프로그램 06단계 ] 우리가 직접 예외의 상황을 정의하고, 해당 예외의 표현을 위한 예외 클래스를 정의해서 단계별 프로젝트에 반영해보고자 한다. * 초기 메뉴 선택에서 1, 2, 3, 4 이외의 값을 입력하는 예외상황 * 데이터 입력의 과정에서 1, 2, 3 이외의 값을 입력하는 예외상황 이 두 가지 예외상황 모두 그 유형이 동일하니, MenuChoiceException이라는 이름의 예외 클래스를 하나 정의해서 위의 두 상황에 모두 활용하기로 하겠다. 그리고 위의 두 가지 중 어느 예외상황이 발생을 하건, 프로그램의 흐름은 '초기 메뉴 선택'으로 이동하는 것을 원칙으로 하자. (실행 예) 선택하세요... 1. 데이터 입력 2. 데이터 검색 3. 데이터 삭제 4. 모든 데이터 보기 5. ..

    [Java] 예외처리 문제

    [ 예외처리 문제 ] 1. 다음 소스 코드는 컴파일시 에러가 난다. 이유는? class ExceptionEx1 { public static void main(String[] args) { try { try{} catch (Exception e){ } } catch (Exception e){ try{} catch (Exception e) { } } // try-catch의 끝 try { } catch (Exception e){ } // try-catch의 끝 }// main메서드의 끝 ☞ catch 블럭 안에 또 try~catch문이 사용되었는데 위의 try에서와 참조변수의 이름이 중복 선언되었다. 2. 다음 소스코드는 예외가 발생하는 소스코드이다. 어디서 예외가 발생하나? 그리고 그 이유는? class ..

    [Java] 예외처리 설명

    [ 예외처리 설명 ] 1. printStackTrace() - 예외 발생 당시의 호출 스텍(Call Stact)에 있었던 메소드의 정보와 예외 메시지를 화면에 출력한다. 2. getMessage() - 발생한 예외 클래스의 인스턴스에 저장된 메시지를 얻을 수 있다. 3. 멀티 catch 블럭 - JDK1.7부터 여러 catch 블럭을 ' | ' 기호를 이용해서, 하나의 catch 블럭으로 합칠 수 있게 되었으며, 이를 '멀티 catch블럭'이라고 한다. 아래의 코드에서 알 수 있듯이 '멀티 catch블럭'을 이용하면 중복된 코드를 줄일 수 있다. 그리고 ' | ' 기호로 연결할 수 있는 예외 클래스의 개수에는 제한이 없다. (멀티 catch 블럭에 사용되는 ' | ' 는 논리 연산자가 아니라 기호이다.)..