티스토리 뷰
자바 예외(Exception) 처리 알아보자
예외(Exception) : 프로그램 실행중에 발생한 심각한 에러 상황들
, 프로그램을 다운시켜 버리는 에러들을 자바버쳐머신(jvm)에게 알려주는 방법
개발자는 예외처리를 이용하여 예외가 일어날 만한 코드에 try catch 블록을 이용하여 예외처리를 쉽게 할수 있습니다.
예외처리하는 방법
에러가 발생할 만한 코드 블록을 중괄호{} 로 묶고 , try를 앞에 붙힘. 이렇게 하면 블록 내에서 에러가 발생하면 예외를 캐치한다는 의미입니다.
try는 반드시 하나 이상의 catch 블록이 필요. 각각의 catch구문은 예외의 범위를 선언하고, 블록 안에는 에러 발생시 처리할 내용을 코딩합니다.
예제 소스를 통해서 더 자세히 알아보겠습니다.
package test.Autil; public class LeeSejinDoc { public static void main(String[] args) { } |
결과값
예외처리에 대해 알아보자
결과값 ->LEE3000
해당 프로그램을 실행시키면 정상적으로 실행이 됩니다.
하지만 String input ="3000";
이부분을 String input = ""; 변경하고 실행해보겠습니다.
다음과 같이 에러가 발생하였습니다.
예외처리를 통해 에러가 발생하지 않도록 해보겠습니다.
int parseInt = 0;
try {
parseInt = Integer.parseInt(name);
} catch(Exception e) {
name="9999999999999";
}
try catch를 통해 예외처리를 하게되면 에러가 발생하지 않습니다.
catch구문은 위에서 아래의 순서대로 읽힙니다. JVM은 각각의 캐치 구문을 하나하나 비교하면서 일치하는 예외를 찾다가
해당하는 예외를 찾으면 catch 구문 안의 코드를 실행합니다.
일반적인 Exception 클래스는 모든 예외형의 최상위 클래스여서 모든 종류의 예외를 마지막 catch문에서 처리하고 싶을때 사용합니다.
일단 catch 블록으로 넘어오면 다른 try블럭들은 전부 무시됩니다. 만일 예외가 발생하지 않았으면 try 블록의 모든 코드가 실행되며 catch문은 실행이 되지 않습니다.
finally 블록이 있다면 예외 발생 여부와 상관없이 마지막에 실행이 됩니다.
예외가 발생하였을 경우에도 finally문은 실행됩니다.
소스를 통해 finally문이 실행되는지 알아보겠습니다.
------------------------------------------------------------------
int parseInt = 0;
try {
parseInt = Integer.parseInt(name);
} catch(Exception e) {
e.printStackTrace();
}finally {
System.out.println("무조건 실행된다.");
}
---------------------------------------------------------------------
결과값
예외처리에 대해 알아보자
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at test.Autil.LeeSejinDoc.getUserName(LeeSejinDoc.java:23)
at test.Autil.LeeSejinDoc.main(LeeSejinDoc.java:11)
무조건 실행된다.
결과값 ->LEE
에러가 발생했지만 finally문은 실행이 된걸 확인할수 있습니다.
예외 발생 여부와 상관없이 항상 마지막에 실행이 되어야 한다면 finally문을 사용하여야 합니다.
보통 파일을 닫는 코드등은 finally문에 사용을 합니다.
'JAVA(프로그래밍)' 카테고리의 다른 글
java Vector class 알아보자 (0) | 2018.08.05 |
---|---|
java this 키워드 사용하기 (0) | 2018.08.02 |
java 메모장 노트패드 만들기 (0) | 2018.07.31 |
자바 기초 패키지 가져오는 방법 (0) | 2018.07.30 |
java 네트워크 소켓 연결하기 (0) | 2018.07.29 |
- Total
- Today
- Yesterday
- java substring
- java replaceAll
- Java
- java wrapper class
- java wrapper
- java Vector
- java 노트패드
- 자바 패키지
- java 네트워크
- java join
- java Enumeration
- java StringBuffer
- 객체파일저장
- java ArrayList
- 자바 랩퍼
- java문자열저장
- java LinkedHashMap
- java Properties
- java File
- java텍스트파일저장
- 자바
- java배열
- java 메모장
- java treemap
- File Class
- java tihs
- java 소켓
- java문자열자르기
- linkHashMap
- java iterator
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |