예외 : 잘못된 사용 또는 코딩으로 인한 오류
일반 예외(Exception) : 컴파일러가 예외 처리 코드 여부를 검사하는 예외
실행 예외(Runtime Excepiton) : 컴파일러가 예외 처리 코드 여부를 검사하지 않는 예외
예외처리 방법 2가지
1. try ~ catch
예외 처리 코드는 try-catch-finaaly블록으로 구성
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class ExceptionExam {
public static void main(String[] args) {
FileReader fr=null;
try {
fr = new FileReader("poem.txt");
int c;
while((c = fr.read())!=-1){
System.out.println((char)c);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
System.err.println("파일없음");
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.err.println("입출력오류");
} finally{
try {
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public class ExceptionExam2 {
public static void main(String[] args) {
try {
readFile();
System.out.println("파일 처리 성공");
} catch (IOException e) {
e.printStackTrace();
System.err.println("파일 처리 실패");
}
}
private static void readFile() throws IOException {//외부처리의 오류내용을 메인에서 받기위해 throws함
FileReader fr=null;
try {
fr = new FileReader("poem.txt");
int c;
while ((c = fr.read()) != -1) {
System.out.print((char) c);
}
System.out.println();
} finally {
if(fr!=null) fr.close();
System.out.println("파일 읽기 종료");
}
}
}