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("프로그램 !!");
}
}