구문 그대로 해석을 해 보면, [입출력 예외를 던진다] 입니다.

자바에서는 런타임시에 발생할 수 있는 여러가지 예외들을 처리하는
별도의 메카니즘을 가지고 있습니다. throws 키워드는 실행시간에
예외가 발생했을 경우 해당 예외를 직접처리하지 않고 다른 곳에서
처리하도록 예외를 던지겠다 라는 의미입니다.

예외를 직접처리하는 경우와 던지는 경우의 예는 다음과 같습니다.

- 직접처리할 경우.

method a() {
  try {
    // 실행시간에 예외가 발생할 수 있는 코드들..
  } catch (Exception e) {
    // 예외발생시에 처리할 코드들..
  }
}

위와 같이 try - catch 블록을 써서 예외를 직접 받아서(catch) 처리할 경우는
try 블록 내에서 예외가 발생했을 때, 예외가 던져지고(throw), 이 던져진 예
외는 catch 블록에 의해서 받아져서 결국, catch 블록내의 코드들이 실행됩니다.
이 경우에는 예외가 발생하더라도 catch 블록에 의해 처리되고 난 후, catch
블록 이 후의 코드들이 계속해서 실행 될 수 있습니다.

- 예외를 던질 경우.

method a() throws Exception {
  // 실행시간에 예외가 발생할 수 있는 코드들..
}

이 처럼 예외를 직접처리하지 않고 던지는 경우에는, 예외가 발생하면 a() 메
소드의 예외발생 지점부터 그 후의 코드들은 실행이 중단되며, a() 메소드를
호출한 다른 메소드에게 예외가 던져집니다(throw). 만약 main() 메소드에서
a() 메소드를 호출했다면, 해당 예외는 main() 메소드에게로 전달되고, main()
메소드에서도 직접 처리하지 않고 예외를 던질경우 자바가상머신(JVM)이 해당
예외를 받아서 처리하게 됩니다. 즉, 이렇게 예외를 던질경우는 예외발생 즉시
코드의 실행은 중단되며, 결국 JVM에 의해 예외에 대한 레포트가 화면에 출력
되고 프로그램이 종료됩니다.

- 또한 다음과 같이 의도적으로 예외를 발생시켜서 던질 수도 있습니다.

method a() throws MyException {
  if (// 예외발생 조건이 만족되면..) {
    throw new MyException();
  }
}

위와 같이 의도적으로 예외를 발생시켜서 이를 try - catch 블록으로 처리 하던지
아니면 a() 메소드를 호출한 메소드로 던지던지 할 수 있습니다. 이 예제의 경우
위와 같이 하기 위해서는 다음과 같은 형태의 MyException 클래스가 정의되어 있
어야 합니다.

class MyException extends Exception {
  // MyException 클래스 정의 코드들..
}

위와 같이 예외를 던지기 위한 클래스 정의의 경우는 일반적으로 Exception
클래스를 상속받아서 작성하며, 이는 예외를 던지는 메카니즘을 구현하기 위한
방법입니다. 참고로 Exception 클래스는 Throwble 클래스의 하위 클래스이며
Throwble 클래스가 모든 예외나 에러 클래스들의 슈퍼클래스 이며, throws 메카
니즘의 출발점이 됩니다.

따라서 자바에서 모든 예외클래스 들은 Exception 클래스를 상속받고 있으며,
입출력(IO)에 관련되 예외 인스턴스를 정의한 클래스가 질문자 분께서 질문한
IOException 클래스 이며, java.io 패키지 내에 정의되어 있습니다. 따라서
코드내에 IOException 클래스에 대한 선언을 하기 위해서는 java.io 패키지를
import 해야 하며, 그렇지 않을 경우, 항상 java.io.IOException 과 같이 전체
경로를 명시해 줘야 JVM이 제대로 클래스를 찾아갈 수 있습니다.

- JFrame

JFrame 클래스는 윈도우 어플리케이션을 작성할 때 사용되는 클래스이며, 간단
히 말해서 윈도우에서 생성되는 창이라고 생각하시면 됩니다. 일반적으로 윈도
우 응용 프로그램들은 모두 사용자 인터페이스로 윈도우 창을 사용하고 있는
데, 자바에서 이런 윈도우 창을 만들경우 java.awt 패키지의 Frame 클래스를
상속받아서 작성합니다.

JFrame 클래스는 위에서 언급한 Frame 클래스를 확장한 클래스로써, 이는
javax.swing 패키지내에 정의되어 있습니다. 따라서 JFrame 클래스를 액세스
하기 위해서는 javax.swing 패키지를 import 해야 하며, 그렇지 않을 경우
javax.swing.JFrame 처럼 전체경로를 명시해 줘야 합니다.

참고로 말씀드리자면, java의 기본패키지는 모두 java. 으로 시작되면, java의
표준 확장 패키지는 javax. 로 시작됩니다. 윈도우 응용프로그램을 작성하는데
필요한 API들은 java.awt 패키지에 정의되어 있으며, 이를 좀더 확장하며 정의
된 패키지가 javax.swing 패키지 입니다.

출처 : Tong - sjhfeel님의 자바익히기 대작전!!통

저작자 표시 비영리 변경 금지


#include <stdio.h>
#include <conio.h>

void main(void){
 int num = 2147483647;
 int num01 = 2147483647 + 1; // overflow되면 자료형의 가장 작은 값으로 변경

 printf("num의 값 :: ");
 printf("%d\n", num);
 printf("num의 값 :: ");
 printf("%d\n", num01);

 getch();
}

==================================================================================
if문으로 짝홀

#include <stdio.h>
#include <conio.h>

void main(void){
 int num =10;
 char ch ='a';
 double ff=3.14;

 printf("%d, %c, %f", num, 'B', ff);

 getch();
}

==================================================================================
모듈연산자 :: 나머지 구하는 연산자 "%"
- 겁나 중요.
이항연산자 :: 위치에 따라 값이 달라짐.

#include <stdio.h>
#include <conio.h>

void main(void){
 int num =10;
 
 printf("%d\n", ++num % 4);
 printf("%d\n", num);

 printf("%d\n", num++ % 4);
 printf("%d\n", num);
 
 getch();
}

==================================================================================
sizeof()

#include <stdio.h>
#include <conio.h>

void main(void){
 int num =10;
 
 printf("%d Byte \n", sizeof(char));
 printf("%d Byte \n", sizeof(char *));
 // * :: Pointer 주소를 기억하는 녀석이므로 4 byte로 출력됨.
 getch();
}
==================================================================================
cast 연산자(형변환 연산자) :: 이미 지정된 자료의 자료형을 강제적으로 
                                         다른 자료형으로 변환
                                      :: 큰 것 따라 변환
#include <stdio.h>
#include <conio.h>

void main(void){
 
 printf("%f\n", (float)10 / 3);
 printf("%f\n", 10. / 3);

 getch();
}

==================================================================================
짝홀 구별하는 소스 : if 사용
#include <stdio.h>
#include <conio.h>

void main(void){ 
 int num = 5;

 if(num % 2 == 0){
  printf("짝수\n"); // 참 일때,
 } else if (num % 2 != 0) {
  printf("홀수\n");
 } else {
  printf("Error...\n");
 }

 printf("===========\n");

 getch();
}
==================================================================================
조건문 if, switch~case 문
==================================================================================
반복문 이론 3월 24일 실습과 함께 고고..

저작자 표시 비영리 변경 금지

[프로젝트 만]

2009/11/16 09:22


프로젝트 만에서 세미나를 개최한다.
UX디자인관련 주제로 2009년 11월 28일(토요일) 오후 3시 - 6시에 논현동의 스튜디오에서
열린다.

초보 기획자로서 처음 접하게 될 이 세미나에서 나는 무엇을 얻어가게 될까?

내가 생각하는 UX디자인이란, 말 그대로의 사용자 편의를 위한 디자인이라고 생각한다.
하지만 대략적인 의미만 알고있을뿐, 실무에서는 어떻게 사용되어야 하고, 어떠한 모습으로
나타나는지 알 수 있는 날이 되길 바란다.

그보다.. UX디자인에 대해 처음접하다 보니 공부를 하고 가야겠다는 생각이 불끈 든다.

저작자 표시 비영리 변경 금지
BLOG main image
by 워늬

공지사항

카테고리

분류 전체보기 (30)
Today_잡다 (2)
시작하기전에 (6)
Project참고자료 (2)
Planning (1)
Java5.0 (5)
JSP (7)
JavaScript (0)
HTML_Coding&CSS (0)
Flex 3.0 (0)
C/C++ (3)
ASP (0)
Design (3)
이산수학 (0)
유비쿼터스 (0)

최근에 달린 댓글

Total : 2,469
Today : 0 Yesterday : 1