[Kotlin] try-catch문을 활용한 예외 처리 (finally)

2022. 12. 7. 12:00·컴퓨터 언어/Kotlin
728x90

코틀린에서도 다른 언어와 비슷하게 try-catch문을 사용하여 예외를 처리할 수 있다.

 

예를 들어 문자열을 입력받아서 이를 정수로 반환하는 함수가 있다고 해보자.

fun toInt(str:String):Int{
    return str.toInt()
}

 

파라미터로 "123"이 전달된다면 문제가 없지만 "abc"가 된다면 toInt() 메소드에서 에러가 발생한다.

 

만약 숫자가 아닌 문자가 들어왔다면 -1을 반환하도록 처리해주기 위해서는 다음과 같이 try-catch문을 사용하면 된다.

fun toInt(str:String):Int{
    try{
        return str.toInt()
    }catch(e:NumberFormatException){
        return -1
    }
}

try 구문에서는 실질적인 코드를 작성하면 되고 여기서 에러가 발생한다면 try 구문내에서는 에러를 던지게 된다.

 

catch 구문에서는 문자 그대로 try 구문 내에서 던진 에러를 받아서 처리한다고 보면 된다.

 

위의 코드 같은 경우 try 구문 내에서 NumberFormatException을 던지게 되면 이를 받아서 -1을 반환하도록 처리한다.

 

에러의 종류도 여러가지 있으므로 catch문을 여러 번 사용하여 발생할 가능성이 있는 에러들을 모두 처리할 수도 있다.

 

try-catch 말고도 fianlly 구문도 사용할 수 있다.

 

이 finally 구문은 에러 발생 여부와 상관없이 무조건 실행되는 구문이다.

fun toInt(str:String):Int{
    try{
        return str.toInt()
    }catch(e:NumberFormatException) {
        return -1
    }finally{
        println("hello!")
    }
}

위의 경우 무조건 "hello!"라는 문자열을 출력하는 함수이다.

 

보통 try 내에서 사용된 것들을 정리할 때 사용되곤 한다.

728x90

'컴퓨터 언어 > Kotlin' 카테고리의 다른 글

[Kotlin] 고차 함수와 람다 함수  (0) 2022.12.20
[Kotlin] 클래스 사용법  (0) 2022.12.08
[Kotlin] 내포된 반복문과 레이블  (0) 2022.12.06
[Kotlin] null 가능성 체크 (엘비스 연산자, !!, ?)  (0) 2022.11.29
[Kotlin] 범위 표현의 방법과 in과 when과의 활용  (0) 2022.11.19
'컴퓨터 언어/Kotlin' 카테고리의 다른 글
  • [Kotlin] 고차 함수와 람다 함수
  • [Kotlin] 클래스 사용법
  • [Kotlin] 내포된 반복문과 레이블
  • [Kotlin] null 가능성 체크 (엘비스 연산자, !!, ?)
웅대
웅대
알고리즘과 백엔드를 중심으로 열심히 공부 중입니다! 같이 소통하며 공부해요!
    250x250
  • 웅대
    웅대 개발 블로그
    웅대
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 백준 알고리즘
        • dp
        • 문자열
        • 정렬
        • 스택
        • 브루트 포스
        • 이진 탐색
        • 정리
        • 우선순위 큐
        • 자료구조
        • 그래프
        • 기타
        • 그리디
      • 컴퓨터 언어
        • Kotlin
        • Python
        • C#
      • 공부
        • Database
        • Android Studio
        • Algorithm
        • 컴퓨터 구조론
        • Spring
        • lombok
        • AWS
        • Network
        • OS
        • Git & GitHub
        • AI
        • Computer Vision
        • 보안
        • Nginx
        • 프론트
        • express
        • GCP
        • grokking concurrency
        • DevOps
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    nn.RNN
    Vector Store
    ci/cd
    스프링 OAuth2
    bfs
    parametric search
    푸쉬 알람
    openvidu 배포
    스택
    codetree
    ChatPromptTemplate
    code tree
    AWS Lambda
    Merge
    binary search
    다익스트라
    파이썬
    RNN
    embedding
    influxDB CLI
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
웅대
[Kotlin] try-catch문을 활용한 예외 처리 (finally)
상단으로

티스토리툴바