예외처리

siwan·2021년 11월 3일
0

코틀린 기초

목록 보기
5/6

코틀린의 예외처리

  • 코틀린의 예외처리는 자바의 예외처리와 전혀 다르지 않다.
  • throw를 식으로 처리가 가능하다.
if (percentage !in 0..100){
   throw IllegalArgmentException(
       "A percentage value must be between 0 and 100: $percentage") 
}

val pecentage = 
if(num in 0..100) number
else 
throw IllegalArgmentException(
       "A percentage value must be between 0 and 100: $percentage") 

try,catch,finally

자바와 마찬가지로 예외처리를 하려면 try,catch,finally 절을 함께 사용한다.


-이 코드는 파일에서 각 줄을 읽어 수로 변환하되 그 줄이 올바른 형태가 아니면 null 을 반환하는 예제이다.

  fun readNumber(reader:BufferedReader):Int?{
        try {
            val line = reader.readLine()
            return Integer.parseInt(line)
        }catch (e:NumberFormatException){
            return null
        }finally {
            reader.close()
        }
    }
    
 val reader = BufferedReader(StringReader("239"))
 println(readNumber(reader))

 >>>239
  • 코틀린에서는 try catch문을 이용해 식으로도 만들 수 있다.
     fun readNumber(reader:BufferedReader){
        val num = try {
            Integer.parseInt(reader.readLine())
        } catch (e: NumberFormatException) {
            null
        }
        println(num)
    }
    
  val reader = BufferedReader(StringReader("not a number"))
  println(readNumber(reader))

 >>>null

위 코드는 예외가 만족하면 문자열 숫자를 반환하고 아닐 경우 예외처리가 될 경우 null을 반환한다.
1. 식 안에서는 마지막 문장이 리턴값이 된다.

profile
station3 다방 안드로이드 개발자

0개의 댓글