java #27 Exception Handling, 예외처리
* Exception Handling
- 프로그램 작성시 개발자가 반드시 인지하고 처리해야 하는 것.
- 예외처리 클래스의 가장 윗부모는 Exception
- Compile Exception(개발자가 코드를 정의하여 처리하는 예외)와 Runtime Exception(JVM이 자동으로 처리하는 예외) 두가지가 존재
* 예외처리 클래스의 상속관계
throwable ┳ error ┳ AWTError 런타임 예외(JVM이 자동으로 처리) │ └ StackOverflowError └ Exception ┳ RuntimeException ┬ ArrayIndexOutOfBoundsException ─ 배열의 인덱스를 잘못 사용 │ ├ ArithmeticException ─ 0으로 나눌때 Compile 예외 │ ├ NumberFormatException ─ 숫자의 형이 다를 때 │ └ NullPointerException ─ 객체를 만들지 않고 사용 ├ IOException ├ ClassNotFoundEx ├ SQLException └ InterruptedException |
※ 예외처리 방법
- try~catch (예외잡기)
- throws (예외 날림)
- throw (예외 강제 발생) 등 3가지가 있다.
try~catch 예외잡기 | throws 예외날림 | throw 예외강제발생 | ||||||||||
정 의 | - catch에서 예외 메세지 출력 - 간단한 메세지만 출력 예외처리객체명.getMessage() - 예외처리클래스와 메세지를 출력 s.o.p(예외처리객체명); - 매우자세한 메세지(출력까지 같이한다.) - 예외처리객체명.printStackTrace(); | - method 뒤에 정의하고, method 내부에서 발생하는 예외를 호출하는 곳에서 한번에 처리하도록 만들때에 사용 - throws 사용하면 메서드 내부에서 try~catch 를 처리할 필요가 없어진다. | - 메소드 안에서 일을 처리할 때 특정 상황이 발생하면 예외를 강제로 발생시켜 그 상황을 처리하도록 하는 것. - throw로 예외가 발생되면 throws로 발생된 예외를 날리든, try~catch로 바로 잡아서 처리하든 해야함. | |||||||||
사 용 법 |
|
|
|
- 예제
Try~catch 예외잡기 |
| ||||||
throws 예외날림 |
| ||||||
throw |
|
* 사용자 정의 예외 클래스
- Java에서 제공하는 예외처리클래스가 지금의 업무와 맞는 것이 없다면 업무에 맞는 예외처리클래스를 개발자가 직접 작성해서 사용할 수 있다.
1 2 3 4 5 | public class MyException extends Exception{ public MyException(){ super("출력 메세지"); } |
'컴퓨터 관련 > JAVA 강의' 카테고리의 다른 글
java #29 IO Stream -출력- (파일복사, 객체 JVM외부로 보내기/읽기) (0) | 2016.12.18 |
---|---|
java #28 IO Stream -입력- (0) | 2016.12.18 |
java #26 Map (0) | 2016.12.18 |
java #25 List(ArrayList, Vector) (0) | 2016.12.18 |
java #24 Set (0) | 2016.12.18 |