sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
sitelink6 |
37. 예외처리
1) 에러의 종류
에러 -- 문법 error
|
|
-- 실행 error +-- 논리 error
|
-- System error
|
-- 예외 (Exception) - 실행시에 발생하는 error로써, 개발자가 주의하여 처리한다.
2) Exception class의 계층구조도
-------------------------------------------------------------------------------------------------------
Throwable -- Error
|
|
-- Exception
-------------------------------------------------------------------------------------------------------
* throw - 메소드안에서 예외를 임의적으로 발생시키는 것.
* throws - 현재영역에서 예외처리하지 않고 상위영역으로 예외를 던지는 것.
3) try/catch
* try{
에러가 발생할 수 있는 code
}catch(Exception e){ 예외가 발생했을때, 그 예외를 대치(처리)할 수 있는 임의의 code } -예외를 받아서 처리해주는 구문이다.
* try/catch구문은 개발자가 임의로 예외처리구문을 작성할때 사용한다.
* try/catch구문을 이용하지 않고 이미 정의된 exception클래스를 이용할경우... throw에 의해 발생한 예외는 호출한 쪽으로 전달되고...
ex) void method()throws MyException{
throw new MyException("MyException발생");
}
class MyException extends Exception{
MyException(string msg){
super(msg);
}
}
Exception클래스를 상속받아 에러를 처리하였다.
4) Exception이 발생하는 메소드에서 예외처리를 하지 않았다면 그 메소드는 throws(throw와 구분할것)를 이용하여 반드시 예외가 발생한 현재메소드를 호출하는 상위메소드로 예외사항을 던져주어야 한다.
5) 예외처리시 finally 키워드는 예외발생이 있든 없든 반드시 실행할 필요가 있는 구문이 있을 경우 사용한다.
6) 예외가 발생하는 구문에서는 catch블럭이 반드시 필요하지만 예외가 발생하지만 않는다면 catch블럭이 없어도 무방하다.
7) system.exit(0); 에 의한 프로그램 종료명령이 먼저 실행되는 경우가 아니면 finally는 무조건 실행된다.
8) 다중 catch문의 사용시 예외처리문의 순서는 작은범위에서 큰범위의 순서다.
ex) FileNotFoundException -> IOException -> Exception
오늘의 예제 :: [8]
1) 에러의 종류
에러 -- 문법 error
|
|
-- 실행 error +-- 논리 error
|
-- System error
|
-- 예외 (Exception) - 실행시에 발생하는 error로써, 개발자가 주의하여 처리한다.
2) Exception class의 계층구조도
-------------------------------------------------------------------------------------------------------
Throwable -- Error
|
|
-- Exception
-------------------------------------------------------------------------------------------------------
* throw - 메소드안에서 예외를 임의적으로 발생시키는 것.
* throws - 현재영역에서 예외처리하지 않고 상위영역으로 예외를 던지는 것.
3) try/catch
* try{
에러가 발생할 수 있는 code
}catch(Exception e){ 예외가 발생했을때, 그 예외를 대치(처리)할 수 있는 임의의 code } -예외를 받아서 처리해주는 구문이다.
* try/catch구문은 개발자가 임의로 예외처리구문을 작성할때 사용한다.
* try/catch구문을 이용하지 않고 이미 정의된 exception클래스를 이용할경우... throw에 의해 발생한 예외는 호출한 쪽으로 전달되고...
ex) void method()throws MyException{
throw new MyException("MyException발생");
}
class MyException extends Exception{
MyException(string msg){
super(msg);
}
}
Exception클래스를 상속받아 에러를 처리하였다.
4) Exception이 발생하는 메소드에서 예외처리를 하지 않았다면 그 메소드는 throws(throw와 구분할것)를 이용하여 반드시 예외가 발생한 현재메소드를 호출하는 상위메소드로 예외사항을 던져주어야 한다.
5) 예외처리시 finally 키워드는 예외발생이 있든 없든 반드시 실행할 필요가 있는 구문이 있을 경우 사용한다.
6) 예외가 발생하는 구문에서는 catch블럭이 반드시 필요하지만 예외가 발생하지만 않는다면 catch블럭이 없어도 무방하다.
7) system.exit(0); 에 의한 프로그램 종료명령이 먼저 실행되는 경우가 아니면 finally는 무조건 실행된다.
8) 다중 catch문의 사용시 예외처리문의 순서는 작은범위에서 큰범위의 순서다.
ex) FileNotFoundException -> IOException -> Exception
오늘의 예제 :: [8]
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
43 | JDF(Java Development Framework) 관련 | 황제낙엽 | 2004.02.11 | 505 |
42 | JDBC Date 포맷 변환 | 황제낙엽 | 2003.11.08 | 938 |
41 | Connection 리소스 관리시 주의해야 할 점 | 황제낙엽 | 2003.09.06 | 429 |
40 | XSLTFilter ... (퍼옴) | 황제낙엽 | 2003.07.21 | 634 |
39 | (초보탈출 II) 내부클래스 | 황제낙엽 | 2003.05.20 | 505 |
38 | (초보탈출 I) 패키지 | 황제낙엽 | 2003.05.20 | 544 |
37 | 열네번째날 (화상 채팅 프로그램 프로젝트) | 황제낙엽 | 2003.04.21 | 945 |
36 | 열세번째날 - WEB APPLICATION | 황제낙엽 | 2003.04.15 | 824 |
35 | 열두번째날 - I/O | 황제낙엽 | 2003.04.15 | 285 |
34 | 열하나째날 - 스레드 | 황제낙엽 | 2003.04.15 | 330 |
33 | 열번째날 - 애플릿과 그래픽 | 황제낙엽 | 2003.04.15 | 617 |
32 | 아홉째날 - SWING | 황제낙엽 | 2003.04.15 | 542 |
» | 여덟째날 - 예외처리 | 황제낙엽 | 2003.04.14 | 527 |
30 | 일곱째날 - EVENT | 황제낙엽 | 2003.04.14 | 245 |
29 | 여섯째날 - AWT | 황제낙엽 | 2003.04.14 | 628 |
28 | 다섯째날 - Collection, String, StringBuffer | 황제낙엽 | 2003.04.14 | 562 |
27 | 넷째날 - 추상클래스, 내부클래스, Interface, Static영역 | 황제낙엽 | 2003.04.14 | 566 |
26 | 셋째날 - 패키지, 상속, 접근제어 | 황제낙엽 | 2003.04.14 | 509 |
25 | 둘째날 - 클래스, 메서드, 연산자 | 황제낙엽 | 2003.04.14 | 482 |
24 | 첫째날 - 자바의 특징과 DATA TYPE | 황제낙엽 | 2003.04.14 | 457 |