자바공부하기123


기본적인 예외처리






자바공부하기 122


기본적인 예외처리에대한 기본적인 설면은 자바공부하기 121번째에서 확인가능합니다.^^


기본적인 예외처리의 예


- try block에서 예외 발생

: 발생된 예외클래스의 객체 생성

: catch의 명시된 예외클래스들과 실제 발생된 예외클래스의 객체 형을 비교

: 만일 형이 같은 것이 있으면, 해당 catch block을 실행

: 만일 없다면, 그대로 프로그램 종료

: 예외의 발생유무와 관계없이 finally block은 무조건 실행





자바공부하기 121

예외 처리

- try에서 발생된 예외를 처리하는 것

- catch block에서 처리됨

- Checked Exception

: 컴파일 시에 컴파일러가 처리기 여부를 검사

: 비교적 처리가 용이

 

- RuntimeException

: 발생 전에는 알 수가 없음

: 모든 발생 가능 상황에 대한 처리가 필요

* 따라서 다중 catch block을 사용함

: 비교적 처리가 어려운

 

예외 처리의 필요성

- Checked Exception

: 컴파일 불가

 

- RuntimeException

: 실행 중 예외 발생에 따른 위험

: 프로그램의 신뢰성과 안전성 향상

 

기본적인 예외 처리

- try

: 에러 발생이 가능한 코드가 위치함

 

- catch

: try에서 발생한 에러이벤트를 처리

: 다중 catch사용시에 발생할 예외 클래스의 상속을 고려

 

- finally

: 프로그램 종료 전에 무조건 실행

: java.io패키지와 java.sql패키지에서 자주 사용됨

 

 

 

자바공부하기 120

 

 

실행 시의 예외 예제

 

- 컴파일은 되나 배열의 오류가 발생

: 선언된 배열의 범위를 넘은 요소에 접근

: ArrayIndexOutOfBoundsException 발생

 

 

 

자바공부하기 119

예외의 유형

 

- RuntimeException

* 실행 시에 발생하는 예외 이벤트(Event)

* 시스템 상의 문제로 발생

* 실행해 봐야 알 수 있음

- RuntimeException이외의 예외

* 컴파일 시에 발생하는 에러 이벤트

* 컴파일러가 문법적 오류로 간주해 발생

* 컴파일 시에 알 수 있음

* 자바 개발자들이 에러가 자주 발생하는 메서드에 throws 처리

컴파일 시의 예외 예제

 

- 컴파일 시에 예외 발생

: 자바 컴파일러가 CompileTimeException.java 파일을 캄파일 중에 URL클래스발견

: 클래스 라이브러리의 java.net팩키지의 URL.class를 로딩

: URL클래스의 객체 생성중에 throws로 MalformedURLException의 예외 처리가 미뤄진 것을 발견

: URL클래스의 객체를 생성하려는 CompileTimeException.java파일에 예외 처리가 안된 것을 확인한 후 예외 발생

 

 

 

JAVA공부하기 118

예외 클래스 정리

 

RuntimeException의 하부에 정의된 예외 클래스들

 

 

예외란

 

1. 실행 시에 발생하는 에러 이벤트

2. try block에서 발생

3. 클래스의 형태로 표현됨

4. 발생하는 이벤트는 객체가 됨

5. Exception 클래스를 상속 받아 새로운 예외 클래스 생성 가능

 

 

JAVA공부하기 117.

예외(Exception)

 

예외의 분류

- 컴파일 시의 사전 검사 여부

: Unchecked Exception : 컴파일러가 예외 처리 여부를 검사하지 않음

* 시스템 정의 예외

* Error와 RuntimeException

 

: Checked Exception : 컴파일러가 예외 처리 여부를 검사함

* 사용자 정의 예외( 자바 개발자가 클래스 라이브러리에 정의)

* RuntimeException 이외의 예외

 

: 예외의 복원 가능 여부

* Error : 불가능(java.lang.Error의 하부 클래스로 선언됨)

* Exception : 가능(java,lang.Exception의 하부 클래스로 선언됨)

 

- 자바 클래스 라이브러리에 정의된 예외 클래스들의 상속도

 

 

 

JAVA공부하기 116

익명(anonymous) 클래스

- 의미적으로는 지역 클래스와 동일하나 이름이 없다는 특징이 있다.

 

앞의 예에서 지역 클래스 Command는 getRunnable 메소드 내에서 단 한번 참조되는데도 불구하고 이를 위해서 완전한 클래스를 작성하고, 이로부터 객체를 생성하는 2단계가 필요

 

- 이 두 단계를 하나의 문법으로 통합

 

- new 기능의 확장

: 후속하는 명칭이 클래스인 경우 익명 클래스는 그 클래스의 서브 클래스

: 인터페이스인 경우 그 인터페이스를 구현하는 클래스가 된다.

: 인터페이스를 구현하는 클래스는 항상 Object의 서브클래스

 

- 익명클래스는 생성자 정의 못함

: 명칭이 없음

 

익명 클래스 예제

 

 

 

+ Recent posts