Kotlin에서 예외 처리
예외 처리는 대부분의 프로그래밍 언어의 기본 개념입니다. 코드가 문제 없이 실행되도록 예외를 처리하는 데 도움이 됩니다.
Kotlin에서도 @Throws
주석으로 예외 처리를 허용합니다. 이 기사에서는 @Throws
주석을 사용하여 Kotlin에서 예외를 처리하는 방법을 살펴봅니다.
그러나 그것에 들어가기 전에 Kotlin에서 예외의 기본 개념을 살펴보겠습니다.
Kotlin의 예외 개념
Kotlin 예외는 Java 예외와 유사합니다. 그들은 모두 Kotlin의 Throwable
클래스의 후손입니다. 그러나 몇 가지 차이점도 있습니다.
Java와 달리 Kotlin에는 확인된 예외가 없습니다. 따라서 Kotlin에는 확인되지 않은 예외 또는 런타임 예외만 있습니다.
또한 Kotlin에서는 사용자 지정 예외를 생성할 수 있습니다. 따라서 런타임 오류를 방지하기 위해 자체 예외 처리 코드를 만들 수 있습니다.
Kotlin에서 확인되지 않은 예외 처리
앞서 언급했듯이 확인되지 않은 예외는 런타임 중에 발생하는 예외입니다. ArithmeticException
, NullPointerException
, NumberFormatException
등을 포함한 모든 Java unchecked 예외는 Kotlin의 확인되지 않은 예외의 예입니다.
try-catch
블록과 finally
키워드를 사용하여 Kotlin에서 확인되지 않은 예외를 처리할 수 있습니다.
다음은 확인되지 않은 예외를 보여주는 예제 코드입니다.
fun main(args: Array<String>) {
try {
val i:Int = 12;
val v:String = "Hello!";
v.toInt();
}
catch(e:Exception) {
e.printStackTrace();
}
finally {
println("This is an example of unchecked exception handling using the try-catch block.");
}
}
출력:
여기를 클릭하여 예제 코드의 데모를 확인하십시오.
Kotlin에서 사용자 지정 예외 만들기
throw
키워드를 사용하여 Kotlin에서 사용자 지정 예외를 만들 수도 있습니다. 정수 변수를 선언하는 코드를 만들어 보겠습니다.
그런 다음 숫자가 18 이상인지 확인합니다. 그렇다면 "투표할 자격이 있습니다."
라는 메시지가 인쇄됩니다. 그렇지 않으면 사용자 정의 오류 메시지가 표시됩니다.
fun main(args: Array<String>) {
val v:Int;
v = 16;
if(v >= 18)
{
println("Welcome!! You are eligible to vote.")
}
else
{
//throwing custom exception using the throw keyword
throw customExceptionExample("Sorry! You have to wait to cast a vote.")
}
}
//custom exception class
class customExceptionExample(message: String) : Exception(message)
출력:
여기를 클릭하여 예제 코드의 데모를 확인하십시오.
Kotlin에서 @Throws
주석을 사용하여 예외 처리
확인된 예외는 없지만 Kotlin에서 여전히 처리할 수 있습니다. Kotlin @Throws
예외 주석을 사용하여 이를 수행할 수 있습니다.
@Throws
주석은 Java 상호 운용성에 유용합니다. 따라서 Java로 변환해야 하는 확인된 예외 코드가 있는 경우 JVM 시스템에 대해 @Throws
주석을 사용할 수 있습니다.
다음은 동일한 것을 보여주는 예제 코드입니다.
import java.io.*
import kotlin.jvm.Throws
fun main(args: Array<String>) {
val va=0
var res=0
try {
res=va/0 // Since nothing is divisible by 0, it will throw an exception
} catch (excep: Exception) {
// While this is an Airthmetic exception,
// we will throw a NullPointerException using the function call
excep().throwJavaChecked()
}
}
class excep{
@Throws(NullPointerException::class)
fun throwJavaChecked() {
throw NullPointerException()
}
}
출력:
여기를 클릭하여 예제 코드의 데모를 확인하십시오.
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn