예외란?
Exception(예외) : 코드에서 발생할 수 있는 에러를 예측, 처리할 수 있는 기능.
Runtime Exception : 프로그램 실행 중에 발생하며 시스템 환경적으로나 인풋 값이 잘못된 경우에 발생할 수 있는 예외. (예.배열 값 이상을 출력할려고 하거나 맞지 않는 타입을 넣을려고 할때), 99% 개발자의 부주의로 발생함.
Checked exception : 코드 작성 중에 일어나는 예외. 반드시 예외 처리 필수.(compile시 처리해야 하는 예외)
Unchecked exception: 프로그래머가 코드 작성완료 후 컴파일 단계에서 일어나는 예외. (실행시 처리해야 하는 예외.)
예외처리란?
: 프로그램의 비정상적인 종료를 막아주는 것
try( try with resources : close 해야하는 명령문을 작성하는 위치 (자동으로 닫아줌) ){
예외가 발생할수도 있는 명령문
}catch([발생할수 있는 예외 타입] [변수]) {
해당 타입의 예외 발생시 수행할 명령문
} finally{
}
- catch문이 여러개 있을 경우, 예외 발생시 맞는 위치로 이동후 수행
- 모든 예외는 exception의 자식임.( 모든 오류 잡음 )
변수.printStackTrace(); : 변수 오류 출력
throw : 프로그래머가 코드를 작성할 때 예외를 강제로 발생시키는 것.
throws : 예외 넘기기 ("예외가 발생가능한 명령문을 가진 메소드"를 호출한 메소드에게 예외처리 하라고 시킴.)
IOException MTest04
public static void main(String[] args) {
File fi = new File("a.txt");
try {
MyInput(fi); <- throws가 여기에서 예외처리 해줘라 라는 것,
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//예외위임.
//마이인풋에서 아이오익셉션이 발생할 수 있으니 (마이인풋을 호출하는 곳에서)마이인풋(fi)에서 예외처리 해줘라.
private static void MyInput(File fi) throws Exception {
FileReader fr = new FileReader(fi);
int ch;
while((ch = fr.read()) != -1) {
System.out.print((char)ch);
}
finally : try catch 이후 가장마지막에 꼭!! 실행해야하는 명령문
< 용어정리 >
InputMismatchException : 타입이 다른 것 입력
ArithmeticException :계산 잘못되었을 때
ArrayindexoutofboundsException: 배열 칸 초과해서 입력했을 때
nullpointerException: null값 입력
Exception:뭔가 잘못되었을 때!
'IT★_공부' 카테고리의 다른 글
자바의 스레드 (0) | 2022.08.23 |
---|---|
자바의 Stream (0) | 2022.08.23 |
자바의 Collection (0) | 2022.08.23 |
자바의 Class (0) | 2022.08.23 |
자바의 String (0) | 2022.08.22 |