-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExceptions.kt
More file actions
52 lines (47 loc) · 3.24 KB
/
Exceptions.kt
File metadata and controls
52 lines (47 loc) · 3.24 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.lang.Exception
import java.lang.NumberFormatException
import java.util.*
import kotlin.random.Random
fun main(){
val et = ExceptionTester()
val sc = Scanner(System.`in`)
val gottaGuess = Random.nextInt(0,100)
var guessedNumber = 101
var tryCounter = 0
println("ჩავიფიქრე რიცხვი.. ახლა გამოიცანი")
while (true){
//NumberFormatException example
try {//ვცადოთ მომხმარებლის Input-ის აღება და ინტ-ად გადაქცევა
guessedNumber = sc.nextLine().toInt()
}catch (ime: NumberFormatException){//თუ რიცხვი არ შემოვიდა, მთელი while დავსკიპოთ და გავაფრთხილოთ მომხმარებელი
println("უნდა შემოიტანოთ მხოლოდ და მხოლოდ რიცხვი! სცადეთ თავიდან!")
continue
}
//custom exception example
try { //ვცადოთ შემოტანილი რიცხვის ჩასმა ფუნქციაში, რომელიც ტესტავს საზღვრებს ცდება თუ არა ის
et.numberOutOfBounds(guessedNumber)
}catch (e: NumberOutOfBounds){ //თუ მოხდა ჩვენ მიერ შექმნილი NumberOutOfBounds შექმნილი Exceptionის დაჭერა, მაშინ დაპრინტოს მისი მესიჯი და while loop-ის ერთი იტერაცია გამოიტოვოს
println(e)
continue
}
tryCounter+=1
if(guessedNumber < gottaGuess){
println("ჩემი ჩაფიქრებული რიცხვი უფრო დიდია... [მცდელობა: $tryCounter]")
}
if(guessedNumber > gottaGuess){
println("ჩემი ჩაფიქრებული რიცხვი უფრო პატარაა... [მცდელობა: $tryCounter]")
}
if(guessedNumber == gottaGuess){
println("ყოჩაღ! მე $gottaGuess ჩავიფიქრე. სულ დაგჭირდა $tryCounter მცდელობა.")
break;
}
}
}
class NumberOutOfBounds(message: String) : Exception(message) //ვაკეთებთ Exception-ის მემკვიდრე კლასს საკუთარი Exception -ის შესაქმნელად
class ExceptionTester() { //ვაკეთებთ კლასს სადაც გავტესტავთ შემოტანილ რიცხვს და თუ ის ცდება საზღვრებს ვისვრით Exception-ს
fun numberOutOfBounds(number: Int){
if(number > 100 || number < 0) {
throw NumberOutOfBounds("აქ რიცხვი აცდენილია 0-დან 100-მდე საზღვრებს. შეიტანეთ რიცხვი სწორად!! ")
}
}
}