[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다.
Java for Beginner
[교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프...
www.youtube.com
💡예외처리란?
- 예외 : 프로그램 실행 도중에 발생하는 '예외적인 상황'이며, 이러한 상황을 처리하는 것이 예외처리.
- 예외적인 상황
- 파일을 읽으려고 하는데 해당 파일이 존재하지 않는 경우
- 나눗셈을 하려고 두 수를 입력 받았는데 제수가 0인 경우
- 예외적인 상황
- Java 에서는 예외처리를 위한 문법을 제공 (try ~ catch 문)
- if문을 이용한 예외처리의 문제점
- if문을 이용하여 예외처리를 할 경우 프로그램의 주 흐름을 구성하는 코드와 예외처리 코드가 혼재되어 코드가 복잡해짐.
💡예외 클래스의 종류
- 최상위 클래스 : Throwable 클래스
- 하위에는 Exception과 Error
- Error 클래스
- Error클래스를 상속한 클래스들은 매우 심각한 오류상황
- 자바 프로그램 외에서 발생한 오류로 프로그램 내에서 해결 불가능
- ex) OutOfMemory 등..
- Exception 클래스
- RuntimeException 계열의 예외를 Unchecked Exception이라하고 그외의 것들을 Checked Exception이라고 함.
- Checked Exception IOException
- 반드시 예외처리가 강제됨
- 예외처리를 하지 않으면 컴파일 에러가 나타남.
- Unchecked Exception = RuntimeException
- Exception 클래스와 달리 try ~ catch 문 또는 throws 절을 이용한 예외처리가 필요하지 않음.
- Checked Exception IOException
- Error 클래스
💡 try ~ catch 구문
- Java는 예외처리를 위하여 try ~ catch 문을 제공함.
- try 블록은 예외가 발생할 수 있는 영역을 감싸고, catch 블록에는 발생한 예외를 처리하는 코드를 작성
- try{} 예외 발생시 => catch ( 예외종류 ){}
- try 영역에서 발생하는 예외가 여러 개인 경우 다수의 catch문 작성가능
- Java7 부터는 다중 예외 처리를 위한 파이프 (|) 제공
- 예외 발생 여부와 상관없이 항상 실행해야 할 코드가 있는 경우 finally 구문 사용
- try 블록은 예외가 발생할 수 있는 영역을 감싸고, catch 블록에는 발생한 예외를 처리하는 코드를 작성
💡 사용자 정의 예외 클래스
- 문법적으로 문제가 되는 상황에서는 JVM이 적절한 예외를 발생시킴. 그러나 논리적으로 문제가 되는 경우에는 상황에 맞는 예외클래스를 직접 작성해야함.
- 예외 클래스 작성 방법
- Exception 클래스를 상속
- 예외클래스의 생성자에 메시지를 추가
- throw 키워드
- 예외가 발생 했음을 JVM에 알리기 위해 사용
- 문법 : throw 예외 클래스의 인스턴스;
- 예외의 전파 throws
- 발생된 예외상황을 메소드를 호출한 곳으로 전달하기 위해 사용
- 예외 클래스 작성 방법
public class NotAvailableAgeException extends Exception {
public NotAvailableAgeException() {
super("유효하지 않은 나이가 입력되었습니다");
}
}
public class AgeInputExample {
public static void main(String[] args) {
System.out.print("나이를 입력하세요 : ");
try {
int age = readAge();
System.out.println("당신의 나이는" + age + "세 입니다.");
} catch (NotAvailableAgeException e) {
System.out.println(e.getMessage());
}
}
private static int readAge() throws NotAvailableAgeException {
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt();
if (age < 0) {
throw new NotAvailableAgeException();
}
return 0;
}
}
2022.08.13 - [☕JAVA/🔎 공부 [JAVA]] - [JAVA] 예외처리(Exception) / Throws
[JAVA] 예외처리(Exception) / Throws
Exception 프로그램실행중 예기치 못한 사건을 예외라고 한다. 예외 상황을 미리 예측하고 처리할 수 있는데, 이렇게 하는 것을 예외 처리라고 한다. public class ExceptionExam { public static void main(String[]
wearegolden.tistory.com
2022.10.06 - [🌿SPRING/🌱연습[SPRING]] - [SPRING] AOP 예외 처리 / Global Exception Handler 전역 예외 처리
[SPRING] AOP 예외 처리 / Global Exception Handler 전역 예외 처리
2022.09.01 - [SPRING] - [SPRING] AOP 개념 [SPRING] AOP 개념 참고블로그 우아한테크 유튜브 Aspect Oriented Programming 관점지향프로그래밍 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점에서 나누어서 보
wearegolden.tistory.com
'☕JAVA > 🐣 강의 [JAVA]' 카테고리의 다른 글
[JAVA][기초] Collection 인터페이스 - List / Set 인터페이스 (0) | 2022.11.10 |
---|---|
[JAVA][기초] Java Collection Framework 와 Generic 제네릭의 이해 (0) | 2022.11.10 |
[JAVA][기초] Wrapper 클래스 (0) | 2022.11.09 |
[JAVA][기초] String 클래스 (0) | 2022.11.09 |
[JAVA][기초] 배열 Array (0) | 2022.11.07 |