자바 5.0 프로그래밍

Preview:

DESCRIPTION

자바 5.0 프로그래밍. chapter 09 : 예외처리. 학습목표. 오류 ( Error ) 란 ? 시스템 정의 예외처리. try/catch 문 throws 문. 사용자 정의 예외처리 Assertion. 오류 ( Error ). 정의. 프로그램 수행시 의도하지 않게 발생되는 문제점. 자바언어의 오류 종류. 오류 ( Error ). 치명적인 오류 프로그래머가 해결할 수 없는 오류 JVM 에 의존해서 해결한다. 예외 ( Exception ). 가벼운 오류 - PowerPoint PPT Presentation

Citation preview

자바 자바 5.0 5.0 프로그래밍프로그래밍

chapter 09chapter 09 : :

예외처리 예외처리

학습목표학습목표

오류 오류 ( Error )( Error ) 란란 ??

시스템 정의 예외처리시스템 정의 예외처리

try/catch try/catch 문문throws throws 문문

사용자 정의 예외처리사용자 정의 예외처리

Assertion Assertion

프로그램 수행시 의도하지 않게 발생되는 문제점프로그램 수행시 의도하지 않게 발생되는 문제점

오류 오류 ( Error )( Error )

정의정의

자바언어의 오류 종류 자바언어의 오류 종류 오류 오류 ( Error )( Error ) 치명적인 오류치명적인 오류 프로그래머가 해결할 수 없는 오류프로그래머가 해결할 수 없는 오류 JVM JVM 에 의존해서 해결한다에 의존해서 해결한다 ..

예외 예외 ( Exception )( Exception ) 가벼운 오류가벼운 오류 프로그래머가 해결할 수 있는 오류프로그래머가 해결할 수 있는 오류 프로그래밍에 의존해서 해결한다프로그래밍에 의존해서 해결한다 ..

예외가 발생되었을 때 예외가 발생되었을 때 정상종료정상종료 되도록 처리하는 작업 되도록 처리하는 작업 ..

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

정의정의

특징 특징 예외가 발생하면 자바언어는 예외를 모두 객체로 인식한다예외가 발생하면 자바언어는 예외를 모두 객체로 인식한다 ..발생한 예외를 예외처리 할 수 있도록 발생한 예외를 예외처리 할 수 있도록 Exception Exception 클래스가 제공클래스가 제공

된다된다 ..

Checked ExceptionChecked Exception

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

컴파일 처리방식에 따른 분류컴파일 처리방식에 따른 분류

컴파일러가 명시적으로 예외처리를 요구한다컴파일러가 명시적으로 예외처리를 요구한다 ..

예외처리를 안하면 컴파일 에러가 발생된다예외처리를 안하면 컴파일 에러가 발생된다 ..

IOException , SQLException IOException , SQLException

Unchecked ExceptionUnchecked Exception

컴파일러가 명시적으로 예외처리를 요구하지 않는다컴파일러가 명시적으로 예외처리를 요구하지 않는다 ..

예외처리보다는 디버깅으로 해결한다예외처리보다는 디버깅으로 해결한다 ..

RuntimeException RuntimeException

시스템 정의 시스템 정의 ExceptionException

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

Exception Exception 클래스에 따른 분류클래스에 따른 분류

APIAPI 에서 제공된 에서 제공된 Exception Exception 클래스로 예외처리클래스로 예외처리

IOException , SQLException , RuntimeException IOException , SQLException , RuntimeException

사용자 정의 사용자 정의 ExceptionException

개발자가 필요에 의해서 만든 개발자가 필요에 의해서 만든 Exception Exception 클래스로 예외처리클래스로 예외처리 ..

반드시 반드시 Exception Exception 클래스를 상속받아야 한다클래스를 상속받아야 한다 . .

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

예외처리 기본개념예외처리 기본개념

……

//// 예외발생예외발생

……..

JVM

33:: 객체생성한 객체생성한 ExceptionException 을 예외 발생된 곳으로 던진다을 예외 발생된 곳으로 던진다 ..

( throw )( throw )

11:: 예외가 발생되면 예외가 발생되면 JVM JVM 에게 예외를 던진다에게 예외를 던진다 ..

22: JVM: JVM 은 예외를 분석하여 알맞은은 예외를 분석하여 알맞은

Exception Exception 클래스를 객체생성 한다클래스를 객체생성 한다 ..44:: 발생된 곳에서 예외처리를 안하면 프로그램은 비정상발생된 곳에서 예외처리를 안하면 프로그램은 비정상

종료된다종료된다 ..

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

예외처리 방법예외처리 방법

try / catch try / catch 문 이용문 이용throws throws 이용이용

try/catch try/catch 문 이용문 이용

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

예외처리 안 했을 경우 예제예외처리 안 했을 경우 예제

JVM

11:: 예외가 발생되면 예외가 발생되면 JVM JVM 에게 예외를 던진다에게 예외를 던진다 ..

33: : 객체생성한 객체생성한 ExceptionException 을 예외 발생된 곳으로 던진다을 예외 발생된 곳으로 던진다 . ( throw ). ( throw )

44: : 발생된 곳에서 예외처리를 안하면 프로그램은 비정상 종료된다발생된 곳에서 예외처리를 안하면 프로그램은 비정상 종료된다 ..

22: JVM: JVM 은 예외를 분석하여 알맞은 은 예외를 분석하여 알맞은 Exception Exception 클래스를 객체생성 한다클래스를 객체생성 한다 ..이 예제에서는 이 예제에서는 ArrayIndexOutOfBoundsException ArrayIndexOutOfBoundsException 이 발생이 발생 ..

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

예외처리 했을 경우 예제예외처리 했을 경우 예제

JVM

11:: 예외가 발생되면 예외가 발생되면 JVM JVM 에게 예외를 던진다에게 예외를 던진다 ..

22: JVM: JVM 은 예외를 분석하여 알맞은 은 예외를 분석하여 알맞은 Exception Exception 클래스를 객체생성 한다클래스를 객체생성 한다 ..이 예제에서는 이 예제에서는 ArrayIndexOutOfBoundsException ArrayIndexOutOfBoundsException 이 발생이 발생 ..

33: : 객체생성한 객체생성한 ExceptionException 을 예외 발생된 곳으로 던진다을 예외 발생된 곳으로 던진다 . ( throw ). ( throw )

44 : JVM : JVM 이 던진 이 던진 Exception Exception 객체를 객체를 catch catch 블록이 잡는다블록이 잡는다 ..

55 : : 예외처리를 해서 프로그램이 정상종료 된다예외처리를 해서 프로그램이 정상종료 된다 ..

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

다중 다중 catch catch 문문실행문이 여러 개인 경우 발생할 수 있는 실행문이 여러 개인 경우 발생할 수 있는 Exception Exception 종류도 종류도

많아진다많아진다 ..catchcatch 문은 순차적으로 실행되며 발생된 예외와 일치하는문은 순차적으로 실행되며 발생된 예외와 일치하는

catch catch 문을 수행한다문을 수행한다 ..

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

다중 다중 catch catch 문 사용시 주의사항문 사용시 주의사항Exception Exception 계층구조에서 상위클래스는 나중에 계층구조에서 상위클래스는 나중에 catch catch 처리한다처리한다 ..

하위클래스하위클래스

상위클래스상위클래스

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

예제예제

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

finally finally 문문예외 발생여부와 상관없이 반드시 수행되는 문예외 발생여부와 상관없이 반드시 수행되는 문 ..file file 및 데이터베이스 접근시 유용하게 사용된다및 데이터베이스 접근시 유용하게 사용된다 ..

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

예제예제

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

throws throws 이용이용

메소드 호출 메커니즘 메소드 호출 메커니즘

throws throws 기본개념은 메소드 호출 메커니즘을 이용한다기본개념은 메소드 호출 메커니즘을 이용한다 ..

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

throws throws 이용이용예외가 발생한 곳에서 예외처리를 안하고 호출한 곳으로 발생된예외가 발생한 곳에서 예외처리를 안하고 호출한 곳으로 발생된

예외를 떠 넘긴다예외를 떠 넘긴다 ..적어도 적어도 mainmain 메소드에서는 메소드에서는 try/catch try/catch 예외처리를 해야한다예외처리를 해야한다 ..RuntimeException RuntimeException 계열은 계열은 throws throws 할 필요없다할 필요없다 ..

방법방법메소드 선언시 메소드 선언시 throws Exceptionthrows Exception 클래스 를 지정한다클래스 를 지정한다 ..

public void b() throws Exception { .. }public void b() throws Exception { .. }

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

예제예제

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

명시적 예외클래스 생성명시적 예외클래스 생성명시적명시적 ( ( 강제적강제적 )) 으로 예외를 발생 시킬수 있다으로 예외를 발생 시킬수 있다 ..

발생방법발생방법throw new Exceptionthrow new Exception 클래스클래스 ( [args] );( [args] );

용도용도사용자 정의 사용자 정의 Exception Exception 클래스로 예외처리시 사용클래스로 예외처리시 사용필요에 의한 필요에 의한 Exception Exception 클래스 예외발생시 사용클래스 예외발생시 사용

주의사항주의사항반드시 반드시 try/catch try/catch 로 예외처리를 해주어야 한다로 예외처리를 해주어야 한다 ..

예외 처리 예외 처리 ( Exception Handling )( Exception Handling )

예제예제

사용자 정의 사용자 정의 Exception Exception

정의정의개발자가 필요에 의해서 만든 개발자가 필요에 의해서 만든 Exception Exception 클래스를 의미한다클래스를 의미한다 ..

작성순서작성순서1. Exception 1. Exception 클래스를 상속받는 사용자정의 클래스를 선언한다클래스를 상속받는 사용자정의 클래스를 선언한다 ..

사용자 정의 사용자 정의 Exception Exception

작성순서작성순서2. 2. 프로그램에서 특정 조건에 해당되는 경우 프로그램에서 특정 조건에 해당되는 경우 ExceptionException 를를

명시적으로 발생시킨다명시적으로 발생시킨다 ..3. 3. 발생된 발생된 Exception Exception 을 예외처리한다을 예외처리한다 ..

Assertion Assertion

정의정의어떤 내용에 대해서 확실한 단언을 할 때 사용하는 단어어떤 내용에 대해서 확실한 단언을 할 때 사용하는 단어 ..

용도용도프로그램의 논리흐름상 특정변수의 값은 반드시 어떤 값이 프로그램의 논리흐름상 특정변수의 값은 반드시 어떤 값이 되어야 한다는 점을 이야기할 때 사용된다되어야 한다는 점을 이야기할 때 사용된다 ..디버깅 용으로 사용된다디버깅 용으로 사용된다 ..실행시에 화면출력 없이 변수나 코드의 흐름에 대해서 검증할실행시에 화면출력 없이 변수나 코드의 흐름에 대해서 검증할

수 있는 코드작성이 가능하다수 있는 코드작성이 가능하다 ..

방법방법assert [boolean assert [boolean 식식 ];];

boolean boolean 값이 값이 false false 인 경우에는 인 경우에는 AssertErrorAssertError 가 발생되어 가 발생되어

비정상 처리된다비정상 처리된다 . . assert [boolean assert [boolean 식식 ]: ]: 실행문 실행문 ;;

boolean boolean 값이 값이 false false 인 경우에 실행문이 실행된다인 경우에 실행문이 실행된다 ..

Assertion Assertion

컴파일컴파일기본적으로 기본적으로 Assertion Assertion 기능이 수행되지 않도록 되어있다기능이 수행되지 않도록 되어있다 ..

javac –source 1.5 javac –source 1.5 파일명파일명 .java.java

실행실행java –ea java –ea 파일명파일명

-ea : Enable Assertions 라고 해서 단언기능을 사용 가능하게 하는 옵션이다 .-da : Disable Assertions 라고 해서 단언기능을 사용 못하게 하는 옵션이다 .

Assertion Assertion

예제예제

요약 정리요약 정리

try/catchtry/catch

throwsthrows

finallyfinally

사용자 정의 사용자 정의 Exception Exception 클래스클래스

throwthrow

AssertionAssertion

Recommended