//사용자 정의 예외클래스 만들기.
class MyException extends Exception{
public String msg=null;
public MyException(String msg){
this.msg = msg;
}
}
/**
* @author Administrator
*
*/
public class ExceptionTest {
public int myMath(int a, int b) throws MyException{
if(b==0){
MyException my = new MyException("숫자 0으로는 나눌수 없습니다.");
throw my;
}else{
int c =0;
c = a/b;
return c;
}
}
public static void main(String[] args) {
ExceptionTest ex = new ExceptionTest();
try{
ex.myMath(20, 0);
}catch(MyException e){
System.out.println("예외발생 : "+ e.msg);
}
}
}
/*
public class ExceptionTest {
public static void main(String[] args){
//만약에 파일을 카피하거나 네트워크 전송할때.
//FileInputStream fis = new FileInputStream("c:\\test\\aaa.txt");
//문자로 읽어보기, 파일카피, 네트워크 전송
//FileReader fr = new FileReader("c:\\test\\aaa.txt");
FileReader fr=null;
BufferedReader br=null;
try{
fr = new FileReader("c:\\Test\\aaa.txt");
br = new BufferedReader(fr);
char data[] = new char[512];
// while(fr.read(data)!= -1){
// System.out.println(data);
// }
String line= null;
while((line = br.readLine())!=null){
System.out.println(line);
}
//--- 4자리 정수 나르시스트 수 :두자리씩 구분하여 제곱하고 더한 수가 원래의 수와 같은 수
int first = 0, second = 0, hap = 0;
for(int i = 1000; i <= 9999; i++){
first = i/100;
second = i%100;
hap = (first*first)+(second*second);
if(hap == i){
System.out.println("네자리 정수 나르시스트수는 "+ i +" 입니다.");
}
}
//--- 3자리 정수 나르시스트수
int a=0, b=0, c=0;
System.out.println();
for(int i=100;i <= 1000;i++){
a=i/100;
b=i%100/10;
c=i%10;
hap = (a*a*a) + (b*b*b) + (c*c*c);
if(hap == i){
System.out.println("세자리 정수 나르시스트수는 "+ i +" 입니다.");
}
}
//--- 구구단 가로 출력
for(int i = 1; i< 10; i++){
for(int j = 1;j < 10; j++){
System.out.printf(" %4d * %d = %d ",j,i,i*j);
}
System.out.println();
}
//--- 알파벳 도형찍기
for(int i = 65; i <= 90;i++ ){
for(int j = 65;j <= i; j++){
System.out.print((char)j);
}
System.out.println();
}
//--- 각수까지의 합(for 문 2개 이용)
hap = 0;
for(int i = 1;i <=100;i++){
for(int j = 1;j <= i;j++){
hap += j;
}
}
System.out.print("\n 총 합은 "+ hap +" 입니다. ");
//--- 각수까지의 합(for 문 하나 이용)
hap = 0;
count = 0;
for(int i = 1;i <=100;i++){
hap += i;
count += hap;
}
System.out.print("\n 총 합은 "+ count +" 입니다. ");
}catch(NumberFormatException e){
System.out.println("숫자만 넣어줍니다.");
}catch(Exception e){
System.out.println("알수 없는 예외상황입니다. \n Exception Message :" + e.getMessage());
//e.printStackTrace();
}finally{
//--- 예외가 실행되든 안되든 무조선 실행한다.
System.out.println("\n 프로그램 종료입니다.");
Adobe AIR는 운영체제에 상관 없이 데스크톱에서 RIA(Rich Int-
ernet Aapplications)를 개발 및 배포할 수 있는 런타임입니다.
여러분은 전통적인 데스크톱 개발 기술을 배우지 않고도 기존에 사
용하던 웹 기술(HTML, Javascript, Adobe Flash?, Adobe
Flex™, Ajax)로 개발한 웹 어플리케이션을 데스크톱에서 실행할
수 있습니다.
기술적 특징
• 운영체제에 상관 없이 동작하는 데스크톱 기반 런타임
• HTLM을 위한 오픈소스 WebKit 엔진
• Flash를 위한 오픈소스 Tamarin VM
• Adobe Flash Player 8보다 10배 이상의 속도 향상을 제공하는
AVM 3 JIT 컴파일러
• 바이너리 호환성 - 운영체제에 상관없이 같은 Adobe AIR 파일로
애플리케이션 설치
jQuery는 동적 RIA(Rich Internet Application)를 쉽게 만들기 위해 개발자가 고려하는 자바스크립트 라이브러리로 뜨고 있습니다. 브라우저 기반 응용은 데스크톱 응용을 계속해서 대체하고 있기에, 이런 라이브러리는 계속해서 활용 범위가 넓어질 것입니다. jQuery 연재물을 통해 jQuery 관련 지식을 얻고 웹 응용 프로젝트에 활용하는 방법을 익혀봅시다.
도입
jQuery는 웹 개발자를 위한 라이브러리 선택 과정에서 다른 자바스크립트 라이브러리 옵션과 간격을 벌리기 시작했으며, 클라이언트 쪽 개발을 쉽게 도와주며 RIA를 빠르고 효과적으로 만드는 방법을 찾고 있는 프로그래머의 관심을 한몸에 받고 있다. RIA 활용이 점점 더 세상에 널리 퍼짐에 따라, 개발을 돕기 위한 자바스크립트 라이브러리 활용도 함께 늘어날 것이다. RIA는 데스크톱에서 동작하는 응용과 비슷한 효과를 얻기 위해 CSS/자바스크립트/Ajax를 조합해 브라우저를 통해 동작하는 응용으로 (대충) 정의할 수 있다. 파이어폭스, IE, 사파리, 구글이 최근 선보인 새로운 크롬 브라우저에 추가된 최신 기능은 브라우저 내부 자바스크립트 엔진 속력을 높이는 데 초점을 맞추고 있다. 이렇게 하는 가장 중요한 이유는 브라우저 제조사가 우리에게 머지 않은 장래에 등장할 좀 더 매혹적인 RIA 보급을 장려하기 위해서다. 브라우저 회사들은 수만 행에 이르는 자바스크립트 코드를 포함하는 웹 페이지를 마음 속에 그리고 있으며, 시작부터 숙성되고 버그가 없는 라이브러리의 중요성을 강조한다.
따라서 웹 응용의 미래가 사람들을 몰두하게 만드는 풍부한 인터페이스로 이동함에 따라 웹 개발자는 점점 더 이런 작업을 쉽게 도와주는 도구로 방향을 바꾸고 있다. 지금 바로 사용할 수 있는 자바스크립트 라이브러리가 시중에 나와 있으며, 각각은 나름대로 장단점은 물론이고 열성파와 반대파도 있다. 기능 측면에서 우월성을 따지지 않는 이유는 궁극적으로 그다지 중요한 문제가 아니기 때문이다. 궁극적으로 어떤 라이브러리가 양으로 승부를 걸어 인기가 더 많은지를 고려해야 한다. 네 가지 가장 인기 있는 자바스크립트 라이브러리를 구글 트렌드 그래프로 살펴본 모습은 다음과 같다. 과거 6~8개월 동안에 jQuery가 자바스크립트 라이브러리 중에서 가장 인기를 끌고 있으며, 가파르게 성장중이다.
그림 1. 인기있는 자바스크립트 라이브러리를 구글 트렌
드로 추적한 결과
구인 시장에도 자바스크립트 라이브러리로 jQuery가 뜨고 있음을 확인할 수 있다. 경력 관리 네트워크인 Monster.com을 대충 살펴봐도 "jQuery" 관련 일자리가 113개가 나오는 반면에 YUI는 67개, ExtJS는 19개, mootools는 13개만 나온다.
jQuery 연재물 중 첫 번째 기사는 jQuery 문법, 설정 방법, 함수 호출 방법부터 살펴본다. 이 기사 후반부에는 라이브러리에 들어있는 핵심 함수를 탐험하고 DOM 탐색을 쉽고 직관적으로 가능하게 만드는 강력한 선택자와 필터 활용법을 탐험한다. 나중에 나오는 기사에서는 CSS 처리, 폼 제어, 텍스트 변경, Ajax 단순화, (모든 사람의 눈을 즐겁게 만들어주는) 애니메이션을 소개한다. jQuery에서 가장 흥미로운 기능은 플러그인 아키텍처로, 개발자가 jQuery 기능을 추가하도록 도와준다. 마지막 기사에서는 RIA 개발 과정을 완료하기 위해 활용 가능한 강력한 플러그인 몇 가지를 소개한다.
이 연재물은 자바스크립트 문법, CSS 문법, DOM 문법을 미리 알고 있는 독자를 염두에 둔다. 연재물을 읽기 전에 각각에 대한 문법을 다시 한번 기억할 필요가 있다면, 이 기사 참고자료 절에 실어 놓은 W3Schools를 강력하게 추천한다.