Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 방법
- JavaScript
- 쿼리
- 스프링
- aws
- jquery
- Vue
- 생성
- 넥사크로
- Eclipse
- IntelliJ
- GitHub
- 코틀린
- 알고리즘
- Spring
- 프로그래머스
- error
- Git
- oracle
- 에러
- JPA
- mybatis
- kotlin
- Security
- Java
- 자바
- 오라클
- db
- 시큐리티
- 함수
Archives
- Today
- Total
송민준의 개발노트
코틀린 예외처리 본문
기본적인 구조는 자바의 try catch와 비슷하다.
try {
내용
} catch(e: exception) {
handler 구문
} finally {
finally 구문
}
차이가 있다면 각 블록의 결과를 반환한다는 것이다.
val reuturnValue: Int ? = try { parseInt(value) } catch (e: Exception) { null }
위의 코드는 returnValue 가 parseInt(value) 혹은 null이 된다.
코틀린에서는 Check Exception이 존재하지 않는다.
예외 던지는 구문은 다음과 같다. 자바와 다른 점은 new 를 선언 안한다는 것이다.
throw Exception(" 던져 ")
엘비스 연산자를 이용해 객체의 값이 null인 경우 예외를 던지는 코드를 작성할 수 있다.
human 객체의 name 속성을 s 변수에 넣고자 하는데 null 일 경우 예외를 던지는 것이다.
val s = human.name ?: throw IllegalArgumentException("empty name")
코틀린은 null을 가질 수 있는 객체와 가질 수 없는 객체의 타입이 분리되어 있다.
// 에러
var test: String = "Kotlin"
test = null
// 에러 아님
var test: String? = "Kotlin"
test = null
객체 타입 뒤에 ? 붙여주면 되는듯
null을 가질 수 있는 객체의 프로퍼티에 접근 하기 위해선 다음과 같은 방법들이 존재한다.
1. if문으로 null 체크
val b: String? = getString()
val b2 = if(b != null) b.length else -1
2. Safe call
val b: String? = getString()
val b2 = b?.length
이 경우 b2는 null을 가질 수 있는 객체가 된다.
val b2: Int? = b.length
이거랑 비슷해지는듯
3. 엘비스 연산자
val b: String? = getString()
val b2 = b?.length ?: -1
b2 타입은 Int
4. !! 연산자 사용
val b: String? = null
val b2 = b!!.length
연산자는 null 갑승ㄹ 가질 수 있는 타입의 객체를 강제로 가질 수 없는 타입으로 변환해준다.
null과 관련된 우형 ppt
https://www.slideshare.net/gyumee/null-142590829
'안드로이드 > 코틀린' 카테고리의 다른 글
companion object(정적 변수) (0) | 2020.06.07 |
---|---|
class와 property (0) | 2020.06.07 |
코틀린 for (0) | 2020.06.06 |
코틀린 when (0) | 2020.06.05 |
if-else (0) | 2020.06.04 |