일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 프로그래머스 SQL
- select
- 입출력
- 웹개발
- 프론트엔드
- 예외처리
- select문
- 자바
- BufferedReader
- order by
- Git
- Linux
- 정보처리기사필기요약
- StringBuilder
- 개발자
- where
- html
- mybatis
- sql문
- DML
- 프로그래머스 sql 고득점 kit
- github
- SQL
- 리눅스
- 클래스
- 백엔드
- JavaScript
- scanner
- 형변환
- 프로그래밍
- 자바스크립트
- Java
- 데이터 조회
- 스프링
- String클래스
- 알고리즘
- MySQL
- 메서드
- 백준
- 정보처리기사
- Today
- Total
ToBe끝판왕
[ JAVA ] Exception 개념 / 예외처리( try-catch문 ) 본문
자바에서 코딩을 하다 보면 Exception , 예외처리를 한 코딩을 많이 볼 수 있는데
Exception의 개념과 예외처리를 어떻게 하는지에 대해 정리해보려 한다.
Exception
Exception( 예외 )는 오류의 일종이며, 프로그램을 실행하다가 보면 비정상적인 동작을 일으키며
프로그램이 종료되는 상황이다. 하지만, Error( 에러 )는 프로그림이 코드로 복구될 수 없는 오류를 의미하고
Exception( 예외 ) 는 프로그래머가 직접 예측하여 막을 수 있는 처리 가능한 오류라고 할 수 있다.
▶ Exception( 예외 )의 종류
• 모든 예외클래스는 Throwable 클래스를 상속받고 있는다.
• Exception은 개발자가 로직을 추가하여 처리가 가능하다.
• RuntimeException은 Checked Exception과 Unchecked Exception을 구분하는 기준이 된다.
※ Throable 클래스에 선언되어 있고, Exception 클래스에서 Overriding 한 자주 사용되는 메서드
• getMessage( )
- 예외 메시지를 String 형태로 제공받는다.
- 예외가 출력되었을 때, 어떤 예외가 발생되었는지를 확인할때 유용하다.
• toString( )
- 예외 메시지를 String 형태로 제공받는다.
- getMessage( ) 메서드보다는 더 디테일하고, 예외 클래스 이름도 같이 제공된다.
• printStackTrace( )
- 첫줄에는 예외 메시지를 출력, 두 번째 줄부터는 예외가 발생하게 된 메서드들의 호출 관계를 출력한다.
※ Checked Exception 과 Unchecked Exception
• Checked Exception 과 Unchecked Exception의 명확한 구분 기준은 " 꼭 처리를 해야 하느냐 " 이다.
• Checked Exception이 발생할 가능성이 있다면, 로직을 try/catch로 감싸거나, throw로 던져서 처리해야 한다.
예외처리
Exception( 예외 )가 발생할 것을 예측하고 대비하여 이를 소스상에서 제어하고 처리하도록 만드는 것이다.
예외처리를 하게 되면 Exception( 예외 )가 발생해도 프로그램이 불능상태가 되지 않고 정상 실행상태를 유지할 수 있다.
▶ try - catch
try {
// 예외가 발생될만한 코드
} catch( FileNotFoundException e ) { // FileNotFoundException 발생시
} catch( IOException e ) { // IOException 발생시
} catch( Exception e ) { // Exception 발생시
} finally {
// 어떤 예외가 발생하던 말던 무조건 실행
}
• try 블록
- 실제 코드가 들어가는 곳으로써, Exception( 예외 ) 가 발생할 가능성 있는 코드가 쓰인다.
• catch( 예외 종류 ) 블록
- 예외가 발생되었을 때, 처리하는 동작을 명시한다.
- catch블록은 여러 개가 쓰일 수 있다. ( 상속관계에서 부모 쪽이 위 catch 부분에 쓰일 수 있다. )
• finally 블록
- 예외의 발생 유무와 상관없이 공통으로 수행되어야 할 코드가 쓰인다. ( 옵션이라 생략 가능 )
※ 일반 예외와 달리 실행 예외는 컴파일러가 따로 체크해주지 않기 때문에, 개발자의 역량으로
예외 처리 코드를 사용해야 한다.
• 예외처리 예시
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main( String[] args ) {
new Main().method1();
}
private void method1() {
method2();
}
private void method2() {
BufferedReader reader = null;
try {
reader = new BufferedReader( New FileReader( "1.txt" ) );
String Str = reader.readLine();
System.out.println( Str );
} catch ( IOException e ) {
e.printStackTrace();
}
}
• JAVA Exception 종류
'■ 공부 기록 > 개념 정리' 카테고리의 다른 글
[ 개념 ] DIP ( Dependency Inversion Principle ) (5) | 2024.10.29 |
---|---|
[ JPA ] ORM의 개념 / 장단점 (0) | 2022.06.03 |
[ JAVA ] 문자열클래스 / String / StringBuffer / StringBuilder (0) | 2022.05.24 |
[ JAVA ] 문자열분리 / StringTokenizer 클래스 / Split( ) 메서드 (0) | 2022.05.19 |
[ JAVA ] 입출력 / Scanner / BufferedReader / InputStream (0) | 2022.05.16 |