Development/Java
try ~ catch문 - 예외 처리를 하지 않았을 때의 예, 예외 처리 방법, try~catch의 장점, try~catch 형식
codedragon
2023. 5. 6. 16:31
반응형
예외 처리를 하지 않았을 때의 예
public class ExceptionEx01 { public static void main(String[] args) { // 0 1 2 int[] var = {10, 20, 30}; for(int i=0; i<=3; i++){ System.out.println("var["+ i + "]: " + var[i]); //배열의 인덱스 범위를 넘어가서 예외발생 - ERROR } System.out.println("프로그램 끝!!"); } } |
예외 처리 방법
- 예외 상황이 너무 많아서 다 외운 뒤에 프로그램을 작성하기 어렵습니다.
- 프로그램 작성후 컴파일을 하고 이 때 예외처리 메시지가 발생되면 그 내용을 기초로 하여 디버깅해야 합니다.
- API문서에서 에러 항목을 미리 확인한후 구현합니다.
try ~ catch문
- 예외를 받아 처리하는 try ~ catch 문
- try는 예외발생의 감지 대상을 감싸는 목적으로 사용되고
- catch는 발생한 예외상황의 처리를 위한 목적으로 사용됩니다.
try~catch의 장점
- try 영역을 보면서 예외발생 가능지역이고 catch 영역을 보면서 예외처리 코드라는 것을 직관으로 확인할 수 있어 실제 작업하는 코드와 문제를 처리하는 코드를 깔끔하게 분리시킴으로써 코드를 간결하게 하고 코드의 가독성을 증가합니다.
- 예외처리부분에서 여러 문제점들에 대해 하나로 묶거나 코드에서 발생할 수 있는 오류를 종류별로 정리해 줄 수 있는 장점이 있습니다.
try~catch 형식
- 프로그램 실행 중에 예외가 발생되면 JVM(자바가상머신)이 예외객체를 던지게 되는데 이를 프로그램에서 받아서 처리하는 구문
- try 블럭에 정의되는 문장은 예외 발생 가능한 문장들을 기재하는 곳이며
- try 블럭은 반드시 하나 이상의 catch 블럭 아니면 finally 블럭이 같이 따라 와야 합니다.
try{ // 예외 발생 가능한 문장들; } catch(예상되는_예외객체1 변수명){ // 해당 예외가 발생했을 때 수행할 문장들; } catch(예상되는_예외객체2 변수명){ // 해당 예외가 발생했을 때 수행할 문장들; } |
try~catch문 사용 예
배열의 범위를 벗어나 ArrayIndexOutOfBoundsException이 발생한 것을 try~catch문을 사용하여 '예외처리'를 수행하는 코드입니다
public class ExceptionEx02 { public static void main(String[] args) { int[] var = {10, 20, 30}; for(int i=0; i<=3; i++){ try{ // 예외가 발생할 가능성이 있는 코드 작성 영역 System.out.println("var["+ i + "]: " + var[i]); }catch(ArrayIndexOutOfBoundsException e){ // 예외 발생시 대체할 수 있는 코드 명시하는 영역 //사용자가 정의한 에러문구 출력하기 System.out.println("ERROR-없는 인덱스를 호출했습니다."); } } System.out.println("프로그램 끝!!"); } } |