▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
자료실
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

4. Flow 통제와 예외 처리(Exception Handling)

기타 조회 수 6018 추천 수 0 2003.11.05 00:06:16
뭉충닷컴 *.118.82.167
### switch 문
if-else 는 조건식에 항상 논리형이 와야하지만 switch 문의 조건식에는 int형으로 표현할 수 있는 조건식이 와야한다.

switch(조건식) {
   case 상수1: 문장1;
       break;
   case 상수2: 문장2;
       break;
   //..
   default : a문장n;
}

각 case에 있는 문장 뒤에는 break가 와야하나. 만약 오지 않는다면 다음 case 문장도 실행된다.


public class test {
  public static void main(String args[]) {
    int i = 2;
    int j = 1;
    int k = 0;
    for (; i<5;i++)
      if (k++ > j)
          j = i + k;
    System.out.println("j="+j);
  }
}

==> 7(4+3)

### while 문
while문의 조건식에는 true, false 로 표현할수 있는 조건식이 와야한다.
while(조건식) { 문장 }
do { 문장 } while(조건식) <ㅡ 일단 한번 실행뒤에 조건식 검사


### 분기문
for(int i=0; i<10; i++) {
   if(i==5) break;
   System.out.println(i)
}
결과 : 0 1 2 3 4

outer:
  for(int i=0;i < 5; i++) {
      for(int j=2;j<5;j++) {
          if(i==j) break outer;
          System.out.println(i+" "+j);
      }
  }
결과 : 02, 03, 04, 12, 13, 14


for(int i=0; i<5;i++) {
   if(i==3) continue;
   System.out.println(i);
}
결과 : 0 1 2 4

outer:
  for(int i=0;i < 5; i++) {
      for(int j=2;j<5;j++) {
          if(i==j) continue outer;
          System.out.println(i+" "+j);
      }
  }
결과 : 02, 03, 04, 12, 13, 14, 32, 42, 43



### 예외(Exception)
                        java.lang.Object
                               |
                        java.lang.throwable
                              / \
                java.lang.Error  java.lang.Exception
                                    /
                       java.lang.RuntimeException
                --------------------------------|------
                    Unchecked Exception         | checked Exception

1. Err 계층
Error 클래스의 계층에서 발생되는 예외는 프로그램 실행 중 발생할 확률이 적은 예외들로서 자원고갈이나 JVM내부의 에러와 같은 프로그램에서 처리할수 없는 치명적인 에러들로 구성

클래스          | 발생원인
--------------------------------------------------------------------
AWTError        | 심각한 Abstract Window Toolkit오류가 발생할때
ThreadDepth     | 실행중인 쓰레드가 중지되었을때
LinkageError    | 클래스가 일치하지 않거나 존재하지 않을때
VirtualMachineError | 자바 가상머신에 심각한 문제가 발생했을때

2. Exception 예외
프로그래머가 막을수 있는 예외들
Unchecked Exception(검사되지않은 예외) + checked Exception(검사된 예외)

Runtime Exception은 Unchecked Exception에 속하며 NullPointerException, IndexOutOfBoundsException...와 같은 예외들이 있다.

Runtime Exception은 시스템 정의 예외라고 불리우며 Unchecked Exception를 제외한 나머지 예외들은 사용자가 예외처리를 해야 컴파일이 되기 때문에 사용자 정의 예외라고도 한다.


### finally 문
오류가 나던 안나던 무조건 실행되는 구문
1. 예외 발생시
만약 try 블록이나 catch 블록에 return문이 있다면 ? finally 문을 실행후에 그 return 문을 실행하게 된다. 그러나 try, catch 에 System.exit()같은 강제 종료의 경우엔 finally 문이 실행되지 않는다.

2. 예외 발생안할때
try, catch 블록에 return 문이 없을 경우에는 finally 블록내의 코드를 실행한후 finally 블록 코드를 실행하지만 return문이 있을경우엔 finally 실행후에 그 return문 실행하므로 finally 다음에 있는 코드들은 실행되지 않는다.


### throw문
java.lang.Throwable 클래스를 상속받은 클래스, 예외를 던진다.
throw new Exception();
throw new Exception("Error");

### throws문
메서드 밖에서 예외를 처리하기 위해서는 메서드가 발생시킬 수 있는 예외들을 throws 문을 이용해 명시하도록 하면 된다. 이렇게 throws문에 의해 명시된 예외는 해당 메서드에서 trh/catch 문을 이용해 처리하지 않아도 된다.

하지만 메서드를 호출한 곳으로 예외가 전파되기 때문에 호출한 쪽에서는 해당예외를 try/catch문을 이용해 처리해주거나 throws문을 통해 상위 레벨의 메서드로 다시 전파해주어야한다. 만약 예외가 가장 상위레벨의 메서드로 전파가 되었는데도 예외를 처리하지 못했다면 자바가상머신은 적절한 메세지를 화면에 출력하고 프로그램을 종료한다.

메서드 이름 throws 예외객체, 예외객체,..
문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 기타 공부하는 곳 -_-; [2] 뭉충닷컴 2002-09-22 10655

토비의 스프링

웹사이트 최적화 기법 file [1]

기타 아파치 튜닝 [1]

기타 아파치 설정 httpd.conf

Intercepting Filter 패턴

Core J2EE Pattern file

기타 [C++ Study] Timer 사용 [3]

기타 [C++ Study] Click Count, Toggle, Move String

기타 [C++ Study] WinMain와 WinProc

기타 C# Pattern - Simple Pattern

기타 1. abex3 크랙 설명서

기타 어셈 강좌 1, 2장 정리

기타 SoftICE 4.05 설치 & 간단한 사용법

기타 5. Overloading, Overriding, Runtime Type and 객체지향

기타 4. Flow 통제와 예외 처리(Exception Handling)

기타 3. 연산자와 지정

기타 2. 선언과 엑서스 제어

기타 1. 자바언어의 기본

기타 Parameter 을 asp 처럼 사용하게 만든 class