Ⅱ. 예외의 발생
package projectException;
public class ExceptionApp {
public static void main(String[] args) {
System.out.println(1);
System.out.println(2/0); // ArithmeticException by zero
System.out.println(3);
}
}
Ⅲ. 예외의 처리
package projectException;
public class ExceptionApp {
public static void main(String[] args) {
System.out.println(1);
int [] scores = {10, 20, 30};
try {
System.out.println(2);
System.out.println(scores[3]); // 여기부터
System.out.println(3);
System.out.println(2/0);
System.out.println(4); // 여기까지 출력 X.
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("존재하지 않는 값입니다.");
} catch (ArithmeticException e) {
System.out.println("잘못된 계산입니다.");
}
System.out.println(5);
}
}
Ⅳ. 예외의 우선순위
package projectException;
public class ExceptionApp {
public static void main(String[] args) {
System.out.println(1);
int [] scores = {10, 20, 30};
try {
System.out.println(2);
System.out.println(scores[3]); // 여기부터
System.out.println(3);
System.out.println(2/0);
System.out.println(4); // 여기까지 출력 X.
} catch (Exception e) {
System.out.println("뭔가 잘못된 것 같다."); // 예외 퉁치기.
}
System.out.println(5);
}
}
Ⅴ. e의 비밀
package projectException;
public class ExceptionApp {
public static void main(String[] args) {
System.out.println(1);
int [] scores = {10, 20, 30};
try {
System.out.println(2);
System.out.println(scores[3]); // 여기부터
System.out.println(3);
System.out.println(2/0);
System.out.println(4); // 여기까지 출력 X.
} catch (Exception e) {
System.out.println("뭔가 잘못된 것 같다."+e.getMessage());
e.printStackTrace();
} // e.getMessage(): 에러 원인 알려줌.
System.out.println(5);
}
}
Ⅵ. checked vs unchecked exception
package projectException;
import java.io.FileWriter;
public class CheckedExceptionApp {
public static void main(String[] args) {
try {
FileWriter f = new FileWriter("data.txt");
f.write("Hello");
f.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ⅶ. finally와 resource 다루기
package projectException;
import java.io.FileWriter;
import java.io.IOException;
public class CheckedExceptionApp {
public static void main(String[] args) {
FileWriter f = null;
try {
f = new FileWriter("data.txt");
f.write("Hello");
// close를 하기 전 예외가 발생할 수 있기 때문에
// -> finally로 처리해야 한다.
} catch (IOException e) {
e.printStackTrace();
} finally {
// 만약에 f가 null이 아니라면
if(f!=null) {
try {
f.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
Ⅷ. try-with-resource
package projectException;
import java.io.FileWriter;
import java.io.IOException;
public class CheckedExceptionApp {
public static void main(String[] args) {
// try with resource statements
try (FileWriter f = new FileWriter("data.txt")){
f.write("Hello");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ⅸ. 수업을 마치며
package projectException;
import java.io.FileWriter;
import java.io.IOException;
public class ThrowException {
public static void main(String[] args) throws IOException {
FileWriter f = new FileWriter("data.txt");
} // try~catch로 감싸도 됨.
}
package projectException;
public class MyException {
public static void main(String[] args) {
throw new RuntimeException("문제가 발생했습니다.");
}
}
출처 :
반응형
'개발(Web) > Web' 카테고리의 다른 글
[Eclipse] 오류: 기본 클래스 (클래스명)을(를) 찾거나 로드할 수 없습니다. (0) | 2021.01.04 |
---|---|
[Java] 생활코딩 JAVA 상속 (0) | 2021.01.01 |
[Java] 생활코딩 JAVA 객체 지향 프로그래밍 (0) | 2020.12.30 |
[Java] 생활코딩 JAVA method (0) | 2020.12.28 |
[Java] 접근 제어자 (0) | 2020.12.28 |