일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬가상환경
- 이터레이터 제네레이터
- 파이참github연결
- 파이썬
- BeautifulSoup
- 파이썬강제예외
- 파이썬try
- java 예외
- 파이선
- 파이썬람다함수
- 파이썬크롤링
- Java
- 파이썬 github
- 웹크롤링
- 이것이코딩테스트다
- 파이썬딕셔너리
- hashpmap
- 컬렉션프레임워크
- 파이썬웹크롤링
- 파이썬크롤링설치
- git.exe
- 파이썬예외
- 장고 sqlite
- Django sqlite3
- 파이참가상환경
- 파이썬 sqliite
- java 컬렉션 프레임워크
- 북리뷰
- 포토샵기초
- 알고리즘공부
- Today
- Total
박미미의 지식에서 쌓는 즐거움
[Java] 예외처리 Exception / try catch 본문
예외처리 정의
컴파일에러: 오타나 잘못된 구문, 자료형 체크 등의 기본적인 문법 오류 체크
런타임에러: 프로그램 실행도중 발생할 수 있는 잠재적인 오류
예외처리는 런타임에러를 사전에 대비한 코드를 작성하는 것. 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것.
try-catch문
예외처리시 try-catch문을 사용해주어야 한다. 다음 예를 살펴보자.
public static void main(String[] args) { throw new Exception(); } |
=> 이런 코드를 짠 후 컴파일 하면, 컴파일 에러가 발생한다. 예외처리가 된 코드가 없어 에러가 난 것이다. try-catch문으로 예외처리를 해주어야 컴파일이 된다.
public static void main(String[] args) { try { throw new Exception(); } catch (Exception e) { System.out.println("예외발생"); } } |
* try문 안에 있는 코드가 오류를 발생할 경우 try catch문의 실행순서
1) 발생한 예외와 일치하는 catch 블럭이 있는지 확인
2-1) 일치하는 catch블럭을 찾을 경우 → catch 내의 문장들을 수행 → 전체 try-catch문을 빠져나가 그 다음 문장을 계속해서 수행
2-2) 일치하는 catch블럭을 찾지 못할 경우 → 전체 try-catch문을 빠져나가 그 다음 문장을 계속해서 수행
* finally 블럭
- try-catch문과 함께 예외의 발생여부에 상관없이 실행되어야할 코드를 포함시킬 목적으로 사용된다.
public static void main(String[] args) { try { throw new Exception(); } catch (Exception e) { System.out.println("예외발생"); } finally { // 항상 수행되어야하는 문장들을 넣는다 } } |
- 만약 try문안에 return문이 있더라도, finally블럭을 먼저 실행 한 후 메서드를 종료한다.
throw 키워드
throw문을 통해 고의로 예외를 발생시킬 수 있다.
Exception e = new Exception("예외"); throw e; //예외를 발생시킴 |
위 내용을 한 줄로 줄여 쓸 수 있다.
throw new Exception("예외"); |
메서드 선언부에 throws를 명시하는 경우
-> 예외를 처리하는 것이 아니라, 자신을 호출한 메서드에게 예외를 전달하여 예외처리를 떠맡기는 것. 최종 main메서드에서도 예외처리가 되지 않으면 프로그램이 종료된다.
출처: 자바의 정석(남궁성 저)
'IT 공부 > Java' 카테고리의 다른 글
[코드업 기초100제] 1031~1040번 JAVA (0) | 2021.08.07 |
---|---|
[코드업 기초100제] 1021~1028번 JAVA (0) | 2021.08.05 |
[코드업 기초100제] 1009~1020번 JAVA (0) | 2021.08.03 |
Java 컬렉션 프레임워크와 종류 (0) | 2019.09.14 |
[JAVA] HashMap과 keySet, EntrySet (1) | 2019.09.12 |