Computer >> 컴퓨터 >  >> 프로그램 작성 >> Android

Kotlin에서 사용자 지정 예외 발생

<시간/>

예외는 모든 프로그래밍 언어의 중요한 측면입니다. 코드가 런타임에 잘못된 출력을 생성하는 것을 방지합니다.

Kotlin의 예외 개념은 Java와 매우 유사합니다. Kotlin의 모든 예외는 Throwable의 자손입니다. 수업. Kotlin에서 개발자는 자신만의 맞춤 예외를 만들 수 있는 권한이 있습니다.

맞춤 예외는 확인되지 않은 예외의 일부입니다. 즉, 런타임에 throw됩니다.

Kotlin에서 맞춤 예외에 대해 알아보기 전에 확인된 예외와 확인되지 않은 예외를 살펴보겠습니다.

확인된 예외

확인된 예외는 컴파일 시간에 확인되는 예외입니다. 다음 예에서는 확인된 예외를 생성했습니다. FileNotFoundException 또는 IOException은 확인된 예외입니다.

예시

import java.io.File
import java.io.InputStream

fun main(args: Array<String>) {
   try {
      val inputStream: InputStream = File("Hello.txt").inputStream()
   }
   catch(e:Exception) {
      e.printStackTrace();
   }
}

출력

위의 코드를 실행하면 다음 출력이 생성됩니다. 컴파일하는 동안 출력으로 확인된 예외가 있음을 알 수 있습니다.

$kotlinc -nowarn main.kt -include-runtime -d main.jar
$java -Xmx128M -Xms16M -jar main.jar
java.io.FileNotFoundException: Hello.txt (No such file or directory)
   at java.io.FileInputStream.open0(Native Method)
   at java.io.FileInputStream.open(FileInputStream.java:195)
   at java.io.FileInputStream.(FileInputStream.java:138)
   at MainKt.main(main.kt:6)

확인되지 않은 예외

확인되지 않은 예외는 컴파일 시간에 확인되지 않고 런타임에 throw되는 예외입니다. 다음 예에서는 확인되지 않은 예외를 생성합니다. 모든 ArithmeticException, NumberFormatException을 uncheckedexception의 예로 고려할 수 있습니다.

예시

fun main(args: Array) {
   try {
      val myVar:Int = 12;
      val v:String = "Tutorialspoint.com";
      v.toInt();
   }
   catch(e:Exception) {
      e.printStackTrace();
   }
   finally {
      println("Exception Handeling in Kotlin");
   }
}

출력

위의 코드를 실행하면 다음과 같은 출력이 생성됩니다. -

$kotlinc -nowarn main.kt -include-runtime -d main.jar
$java -Xmx128M -Xms16M -jar main.jar
Exception Handeling in Kotlin
java.lang.NumberFormatException: For input string: "Tutorialspoint.com"
   at java.lang.NumberFormatException.forInputString(NumberFormatExc eption.java:65)
   at java.lang.Integer.parseInt(Integer.java:580)
   at java.lang.Integer.parseInt(Integer.java:615)
   at MainKt.main(main.kt:5)

Kotlin의 맞춤 예외

매우 간단한 예를 사용하여 사용자 지정 예외를 만들 것입니다. 이 예에서는 변수를 선언하고 해당 변수 값이 50보다 작은지 확인합니다. 결과에 따라 Kotlin 내장 기능을 사용하여 맞춤 예외를 throw합니다.

예시

fun main(args: Array) {
   val sampleNumber:Int;
   sampleNumber = 100;
   if(sampleNumber > 50)
   {
      //throwing custom exception instead of other checked Exception
      throw myCustomException("Invalid Inputs - Please enter a correct number")
   }

   else
   {
      println("Welcome !! you have entered a correct value")
   }
}

//declaring custom exception class
class myCustomException(message: String) : Exception(message)

출력

이 코드를 실행하면 다음 출력이 생성됩니다. 전달된 메시지와 함께 사용자 지정 예외가 발생하는 것을 볼 수 있습니다.

$kotlinc -nowarn main.kt -include-runtime -d main.jar
$java -Xmx128M -Xms16M -jar main.jar

Exception in thread "main" myCustomException: Invalid Inputs -
Please enter a correct number
at MainKt.main(main.kt:7)