티스토리 뷰
BufferedReader를 사용해서
텍스트 파일을 읽는 예제.
package lifecoding;
import java.io.*;
class B {
void run(){
BufferedReader bReader = new BufferedReader(new FileReader("out.txt"));
String input = bReader.readLine();
System.out.println(input);
}
}
class C {
void run(){
B b = new B();
b.run();
}
}
public class Exception4 {
public static void main(String[] args){
C c = new C();
c.run();
}
}
이와 같이 작성하게되면 B클래스의 run메소드는 오류를 발생시킨다.
그러므로 B 클래스에
class B {
void run() throws IOException{
BufferedReader bReader = new BufferedReader(new FileReader("out.txt"));
String input = bReader.readLine();
System.out.println(input);
}
}
라고 작성하게되면 B클래스의 오류는 사라지고 B클래스를 인스턴스화해서 사용하고있는
C클래스의 b.run이 오류가 나게된다 이어서 오류를 해결하려면 (다음 사용자에게 넘기려면)
class C {
void run() throws IOException{{
B b = new B();
b.run();
}
}
C클래스에서 B클래스와 동일하게 IOException을 throws해주면된다.
그렇게되면 메인메소드의 C클래스를 인스턴스화한 c의 c.run 부분에서 오류가 발생하는데
public class Exception4 {
public static void main(String[] args){
C c = new C();
try {
c.run();
} catch (FileNotFoundException e) {
System.out.println("out.txt 파일이 필요합니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
메인 메서드의 C클래스를 인스턴스화한 c.run 부분에 try {} catch() {} 로
오류를 핸들링해주면 된다.
+
추가적으로 코드의 흐름을 보면 throws는 오류가 나는 상황을
해당 클래스를 사용하려는 사용자에게 넘겨준다는 뜻이된다.
그러므로 마지막에서 사용하는 부분에서는 try{} catch(){} 로 해당 코드를 실행하는데 있어서
오류가 발생하는 상황에 에러 메세지를 띄워주거나, 오류 메세지를 커스텀해서 전달해주면 되겠다.
'개발 > Java' 카테고리의 다른 글
| Map 컬렉션 (0) | 2022.09.05 |
|---|---|
| Set 컬렉션 (0) | 2022.09.05 |
| List 컬렉션 (0) | 2022.09.05 |
| 인스턴스 멤버와 this (0) | 2022.09.04 |
| 정적 멤버와 static (0) | 2022.09.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- instance
- IOC
- querydsl
- ssl
- EC2
- this
- 항해99
- 풀텍스트
- DI
- wil
- 협업
- method
- 알고리즘
- JPQL
- .jks
- JWT토큰
- 김영한
- 코드해석
- DTO
- ajax
- joinfetch
- JPA
- EntitiyManagerFactory
- POI
- backoffice
- badrequest
- java
- Spring
- python
- 환경세팅
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
글 보관함