728x90
예외(Exception)
정상적이지 않은 case
- 개발자가 해결가능한 문제
- 사용자의 잘못된 조작, 개발자의 실수로 인한 문제 발생
- 예외가 발생시 프로그램 종료, 단 예외 처리를 통해 정상적인 상태로 실행 가능
ex) 0으로 나누기, 배열의 인덱스 초과, 없는 파일 열기 ...
에러 (Error)
- 개발자가 해결이 불가능한 문제
- 하드웨어의 오류 혹은 고장으로 인한 문제 발생
- 에러가 발생시 프로그램 종료후, 그후 정상적인 상태로 실행 불가능
예외 처리(Exception Handling)
정상적이지 않은 case에 대한 적절한 처리 방법
try{
//에외가 발생할수도 있는 부분;
}catch(예외case1){
//예외case1 발생시 실행문
}catch(예외case2){
//예외case2 발생시 실행문
}finally{
//항상 실행이 되는 부분;
}
// 예시
int = 0;
try{
a=5/0;
}catch(ArithmeticException e){
System.out.println(e);
}
finally
예외 발생 여부와 관계없이 항상 실행되는 부분
throw, throws
- throw : 예외를 발생 시킴
- throws : 예외를 전가 시킴
함수이름(){ throw new Exception(); } 함수이름() throws Exception { }
import java.io.IOException;
class NotTenException extends RuntimeException {}
public class Main {
public static boolean checkTenWithException(int ten) {
try {
if (ten != 10) {
throw new NotTenException(); // 예외생성
}
} catch (NotTenException e) {
System.out.println("e = " + e);
return false;
}
return true;
}
//예외던짐 즉 사용하는 곳에서 예외처리를 해야함
public static boolean checkTenWithThrows(int ten) throws NotTenException {
if (ten != 10) {
throw new NotTenException(); //예외발생을 했지만 처리를하지않음
}
return true;
}
public static void main(String[] args) throws IOException {
boolean checkResult ;
checkResult = checkTenWithException(5);
System.out.println("checkResult = " + checkResult);
try {
checkResult = checkTenWithThrows(5);
} catch (NotTenException e) {
System.out.println("e = " + e);
}
System.out.println("checkResult = " + checkResult);
}
}
728x90
'3.1 Java_Backend > Java' 카테고리의 다른 글
[Java/기초] 스트림 (0) | 2024.07.21 |
---|---|
[JAVA/기초] 람다식 (0) | 2024.07.20 |
[Java/기초] 입출력 (0) | 2024.07.14 |
[Java/기초] 내부클래스 (0) | 2024.07.14 |
[java/기초] 인터페이스 (0) | 2024.07.13 |
댓글