예외처리
- 오류 발생 시 자신이 처리하지 않고 호출자에게 떠 넘긴다.
- 호출자에게 오류를 넘기기 위해서는 메서드 선언부에 어떤 오류를 넘길지 선언해야 한다.
- try... catch 문법을 사용하여 오류를 적절히 처리하여 시스템이 멈추지 않게 한다.
public static void case2() {
System.out.println("작업 준비...");
try {
work();
} catch (Error e) {
System.out.println("오류 났네요. 그래도 계속 고~~~");
}
System.out.println("다른 작업...");
}
- 추가적으로 보고도 한다.
- 예외 발생 상황을 호출자에게 전달할 필요가 있을 때
try {
...
} catch ( 파라미터 선언 ) {
throw 보고;
} catch ( 파라미터 선언 ) {
throw 보고;
} finally {
예외 처리
}
- finally 블럭은 try...catch 블럭을 탈출하기 전에 반드시 수행된다.
\
Throwable 클래스
- 예외 상황을 보고할 때 사용하는 클래스
- 보통 예외 상황이 발생했을 때의 정보를 담고 있다.
- throw 명령어로 해당 객체를 호출자에게 전달한다.
- 두 타입의 자식 클래스가 있다.
1) Exception 자식 클래스
- 애플리케이션에 작업 도중에 발생하는 오류를 표현
- 이런 예외를 보고 받는 호출자는 반드시 오류 처리를 해야 한다.
만약 오류 처리를 하지 않으면, 컴파일 시 오류가 발생한다.
- RuntimeException
: Error와 마찬가지로 호출자에게 던졌을 때
오류를 잘 받는지 컴파일러가 검사하지 않는다.
2) Error 자식 클래스
- JVM 시스템에서 발생하는 오류를 표현
- 이런 예외를 보고 받는 호출자는 오류를 처리하지 않아도 컴파일 오류가
발생하지 않는다.
Stream
Data sink stream class
데이터를 직접 읽고 쓰는 클래스
예) FileInputStream/FileOutputStream
FileReader/FileWrite
ByteArrayInputStream/ByteArrayOutputStream,
CharArrayReader/CharArrayWriter
StringReader/StringWriter
PopedInputStream/PopedOutputStream
PopedReader/PopedWriter
Data processing stream class
=> 중간에서 데이터를 가공하는 역할
=> 위의 Data sink stream class를 제외한 모든 클래스
=> 구분하는 방법:생성자에서 다른 스트링을
요구한다면
이것은 혼자 입,출력을 할 수 없다는 뜻이기 때문에
데이터 가공클래스라 할 수 있다.
추상클래스
=> sub 클래스들에 공통속성이나 공통기능을 상속해주는 역할
=> 직접사용불가
=>new로 인스턴스 생성불가
Over loading
=> 같은 일을 하는 메서드의 대해
같은 이름을 부여하므로서
프로그래밍의 일관성을 주는 문법



댓글 없음:
댓글 쓰기