Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 특정 행 출력
- 의존성 패키지 설치
- Port already in use: 9999
- 의존성 설치
- redis 명령어
- apt-rdepends
- redis 설정
- 쿠버네티스 패턴
- 선언적 배포
- 폐쇄망
- 자료구조
- 포함 관계
- SQL 내장 함수
- docker
- 객체
- REST 성숙도 모델
- 예측 범위 내의 요구사항
- 웹 애플리케이션 아키텍처
- 오프라인 설치
- abstract 제어자
- ubuntu redis
- image 압축
- 웹 애플리케이션 요청 흐름
- kafkaCLI
- Oracle.DatabaseError
- 예외 전가
- 특정 행
- 도커
- redis 외부설정
- Exception Handing
Archives
- Today
- Total
리꾸므
[JAVA] Exception Handing(feat. try - catch) 본문
Exception Handing
프로그램의 비정상적인 종료를 방지하고 정상적인 실행 상태를 유지하기 위한 코드
- 에러는 크게 내부적인 요인과 외부적인 요인으로 구분 가능
- 에러는 발생 시점에 따라 컴파일 에러와 런타임 에러로 구분
컴파일 에러
컴파일 할떄 발생하는 에러
- 세미콜론 생략, 오탈자, 잘못된 자료형, 잘못된 포맷 등 문법적인 문제를 가리키는 신택스 오류로부터 발생
런타임 에러
프로그램이 실행될때, 즉 런타임 시에 발생하는 에러
- 주로 개발자가 컴퓨터가 수행할 수 없는 특정한 작접을 요청할때 발생
- 프로그램이 실행될때 자바 가상 머신(JVM)에 의해 감지
에러와 예외
- 에러 : 한번 발생하면 복구하기 어려운 수준의 심각한 오류를 의미, 대표적으로 메모리 부족과 스택오버플로우 등이 있다.
- 예외 : 잘못된 사용 또는 코딩으로 인한 상대적으로 미약한 수준의 오류로서 코드 수정 드을 통해 수습이 가능한 오류
일반 예외 클래스(Exception)
런타임시 발생하는 'RuntimeException' 클래스와 그 하위클래스를 제외한 모든 'Excetion'클래스와 그 하위 클래스를 말한다.
- 코드 실행전 예외 처리 코드 여부를 검사한다하여 cheked 예외라고 부르기도 한다.
- 주로 잘못된 클래스명이나 데이터 형식등 사용자편의 실수로 발생한다.
실행 예외 클래스(Runtime Exception)
런타임 시 발생하는 'RuntimeException'클래스와 그 하위클래스를 지칭한다.
- 컴파일러가 예외 처리 코드 여부를 검사하지 않는다는 의미에서 unchecked 예외라고 하기도 한다.
- 주로 개발자의 실수에 의해 발생, 자바 문법요소와 관련이 있다.
- 클래스 간 형변화 오류, 벗어난 배열 범위지정, 값이 null인 참조 변수 사용 등이 있다.
try - catch문
try {
// 예외가 발생할 가능성이 있는 코드를 삽입
}
catch (ExceptionType1 e1) {
// ExceptionType1 유형의 예외 발생 시 실행할 코드
}
catch (ExceptionType2 e2) {
// ExceptionType2 유형의 예외 발생 시 실행할 코드
}
finally {
// finally 블럭은 옵셔널
// 예외 발생 여부와 상관없이 항상 실행
}
- 자바에서 예외 처리는 'try-catch'블럭을 통해 구현이 가능하다.
- 먼저 'try' 블럭 안에 예외 발생할 가능성이 있는 코드 삽입
- 정상 실행시 'catch' 블럭은 실행되지 않고 'finally' 블럭이 실행
- 'finally' 블럭은 옵션으로 필수적으로 포함되지 않아도 되지만 포함되는 경우 예외 발생 여부 상관없이 항상 실행된다.
- 'catch'블럭은 예외 발생하는 경우 실행되는 코드, 여러 종류의 예외를 처리 할 수 있다.
예외 전가
예외를 호출한 곳으로 다시 예외를 넘기는 방법
반환타입 메서드명(매개변수, ...) throws 예외클래스1, 예외클래스2, ... {
...생략...
}
/
void Example() throws Exception {
}
- 'throws' 키워드를 사용하여 해당 예외를 발생한 메서드 안에서 처리하지 않고 메서드를 호출한 곳으로 떠넘긴다.
- 'throw' 키워드를 사용하여 의도적으로 예외를 만들 수 있다.
'발걸음 > 일지' 카테고리의 다른 글
[JAVA] 애너테이션 (0) | 2022.11.14 |
---|---|
[JAVA]컬렉션 프레임워크 (0) | 2022.11.10 |
[JAVA] Generic (0) | 2022.11.10 |
[JAVA] Enum(열거형) (0) | 2022.11.10 |
[JAVA] 객체지향 프로그래밍 심화(feat. 추상화) (0) | 2022.11.08 |