누룽지맛치킨
어미새의 개발일지
누룽지맛치킨
전체 방문자
오늘
어제
  • 분류 전체보기 (86)
    • 코틀린 (8)
    • 안드로이드 (5)
      • 디자인 (2)
      • 개발 (2)
      • 도구 (1)
    • 피그마 (1)
    • 대외활동 (0)
    • 프로젝트 (0)
    • 백준 (55)
      • JAVA (55)
    • 알고리즘 (3)
    • 클라우드 (5)
    • 스터디 (2)
      • 코테 (2)
    • 자료구조 (5)
    • 컴퓨터 기술 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준 자바 2559번
  • 자바 Priority Queue
  • 클라우드 컴퓨팅
  • 코틀린 runBlocking
  • 백준 자바 벌집
  • 클라우드
  • 자료구조
  • 백준 자바 2292번
  • 코틀린
  • 안드로이드 디자인
  • Room version 올리기
  • 백준 자바 누적합
  • Room Migration
  • 백준 자바 수열
  • 백준 자바 다이나믹 프로그래밍
  • 안드로이드
  • 코틀린 인 액션
  • 백준 자바
  • 백준 자바 정렬
  • 알고리즘 조합

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
누룽지맛치킨

어미새의 개발일지

코틀린

예외 처리

2023. 1. 26. 15:20
  • 오류가 발생하면 예외를 던진다.
  • 함수를 호출하는 쪽에서 예외 처리 가능
  • 코틀린의 예외 처리 예시
val percentage = 
    if (number in 0 .. 100)
        number
    else
        throw IllegalArgumentException(
            "A percentage value must be between 0 and 100: $number"
        )
  • 코틀린은 자바와 마찬가지롤 예외 처리를 위해 try, catch, finally절을 함께 사용
import java.io.BufferedReader
import java.io.StringReader

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

fun main(){
    val reader = BufferedReader(StringReader("239"))
    println(readNumber(reader)) // 239
}
  • 코틀린은 체크 예외와 언체크 예외 구별 X

try를 식으로 사용

import java.io.BufferedReader
import java.io.StringReader

fun readNumber(reader: BufferedReader){
    val number = try{
        Integer.parseInt(reader.readLine())
    }
    catch(e: NumberFormatException){
        null
    }
    println(number)
}

fun main(){
    val reader1 = BufferedReader(StringReader("239"))
    readNumber(reader1) // 239
    val reader2 = BufferedReader(StringReader("not a number"))
    readNumber(reader2) // null
}
  • try 키워드는 if나 when가 마찬가지로 식이다.
    • try의 값을 변수에 대입 가능

참조

KOTLIN IN ACTION

'코틀린' 카테고리의 다른 글

[코루틴] runBlocking  (0) 2023.07.05
Iteration  (0) 2023.01.26
선택 표현과 처리  (0) 2023.01.25
클래스와 프로퍼티  (0) 2023.01.25
함수와 변수  (0) 2023.01.25
    '코틀린' 카테고리의 다른 글
    • [코루틴] runBlocking
    • Iteration
    • 선택 표현과 처리
    • 클래스와 프로퍼티
    누룽지맛치킨
    누룽지맛치킨

    티스토리툴바