ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] 예외처리 Try Catch문 간단한 사용방법
    Just my dev story. 2020. 2. 21. 00:27
    반응형

    코딩을 하다 보면 여러 가지 예외 상황이 오기 마련인데요!

    예외로는 여러가지 예외 현상이 있습니다.

    • ArithmeticException => 정수를 0으로 나눌 경우에 발생합니다.

    • ArrayIndexOutOfBoundsException => 배열의 범위가 벗어난 index에 접근할 시에 발생합니다.

    • NullPointException => 존재하지 않는 레퍼런스를 참조하였을 때 발생합니다.

    • illegalArgumentException => 잘못된 인자를 전달 하였을때 발생합니다.

    • ClassCastException => 변환할 수 없는 타입으를 객체를 반환 시 발생합니다.

    • IOExcption => 입출력 동작 실패 또는 인터럽트 시 발생합니다.

    • OutOfMemoryException => 메모리가 부족한 경우에 발생합니다.

    • NumberFormatException => 문자열이 나타내는 숫자와 일치하지 않는 타입의 숫자로 변환 시 발생합니다.

    주관적인 생각입니다만... 제가 코딩하며 느꼈을 때 가장 많이 만나본 예외인 경우는

    NullPointException 이 친구를 가장 많이 만났습니다... ㅠㅠ

    다음으로는

    NumberFormatExecption , ArrayIndexOutOfBoundsException , NumberFormatException 등 비슷하게 많이 났습니다..

    - 자주 봤던 예외들

    1. NullPoinException

    NullPoinException은 객체참조가 없는 상태 , 객체가 없는 상태에서 객체를 사용하려고 하니 예외가 터지는 것입니다.

    항상 신경쓰라고 했던 null 처리가 정말 기본적이면서도 중요한 일이다 기초적인 것이다 라고 항상 강조해주셨는데 개발을 해보면서 느낀 점이 정말 중요한 거 같습니다.!

    2. ArrayIndexOutOfBoundsException

    전에 길이가 5인 배열을 미리 선언을 해두었습니다 int [] arr = new int[5] 이런 식으로 말이죠!

    그럼 이 친구는 0번부터 ~ 4번까지의 index를 사용할 수 있습니다 arr [0] ~ arr [4] 길이는 5지만 배열은 0번부터 방을 가지기 때문에 이 이상이나 이하의 index를 참조한다면 참조하는 순간 예외가 바로 발생하게 됩니다.

    이 친구는 조금만 신경 쓰신다면 많이 날 예외는 아닙니다.!

    3.NumberFormatException

    일을 하다 보면 문자열을 숫자 타입으로 변환해야 하는 경우가 자주 일어납니다.

    보통 , Integer.parseInt(String str ) 이 메서드를 사용하여 치환을 시키죠

    이 경우에 숫자 타입으로 변경할 수 없는 문자를 변환하려고 하면 발생하는 예외입니다.!

     

     

    ex ) 정말 간단한 예제

    try{
     System.out.println(1 / 0); //error code - > devided by zero 0으로 나눌수 없어 예외 발생
    }catch (Exception e){    
     e.printStackTrace();
    }finally{ 
    System.out.println("try절이 예외가 없어 실행이되든 , catch 절로 빠지든 무조건 실행"); 
    // 이  윗 줄은 무조건 실행됨
    }

     

    try catch 문을 많이 쓰는 구간은 DB에서 데이터를 내려주고 올려줄 때 많이 사용됩니다.

    DB를 거쳐 왔을 때 변수가 많이 생기기 때문에 try catch문은 필수입니다.

    그리고 finally 절에는 DB와 연결을 끊어주는 코드를 주로 많이 넣어 씁니다.

    특정 예외가 생기어 DB와의 연결이 끊어지지 않았을 시에 여러 가지 문제가 발생할 수 있기 때문입니다.

    지나가시는 분들은 도움이 되셨으면 하여 간단하게 올려두었습니다.!

    반응형

    댓글

Designed by Tistory.