전체 글

전체 글

    [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 블럭에 사용되는 ' | ' 는 논리 연산자가 아니라 기호이다.)..

    [Java] 예외 처리 / try~catch구문 & throws & 실습문제

    1. 예외 처리 1 2 3 4 5 6 7 8 9 class Test { public static void main(String[] args0 { int result = 0; result = 10/0; System.out.println("결과 값은 " + result); } } Colored by Color Scripter cs 어떠한 수도 0으로 나눌 수 없기 때문에 result=10/0에 의해 에러가 발생하게 된다. 이렇게 문법적으로 잘못된 부분이 없는데도 코드 수행에 오류가 발생하는 경우를 '예외'가 발생한다고 하고 이를 처리하기 위한 방법들이 있다. 2. try~catch 구문으로 예외 처리하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class Test { public..

    [Java] 전화번호 관리 프로그램 - 전화번호 05단계

    1. 전화번호 관리 프로그램 - 전화번호 05단계 우리가 정의한 Manager 클래스는 생성되는 인스턴스의 수가 하나인 클래스이다. 이 클래스의 성격을 봐서 알겠지만, 이 클래스의 인스턴스는 둘 이상 생성될 필요가 업으며, 혹시라도 둘 이상의 인스턴스가 생성된다면 이는 실수로 인한 것일 확률이 높다. 그래서 이번 단계에서는 Manager 클래스의 인스턴스 수가 최대 하나를 넘지 않도록 코드를 변경하고자 한다. 그리고 본 프로젝트에서는 프로그램 사용자로부터 다음 중 하나의 선택을 입력 받아서 프로그램을 실행하고 있다. 1. 데이터 입력 2. 데이터 검색 3. 데이터 삭제 4. 모든 데이터 보기 5. 프로그램 종료 뿐만 아니라, 위의 다섯 가지 중에서 '데이터 입력'을 선택하면, 다음 세가지 중 하나의 선택..