내일배움캠프
본 캠프 14일차
끼ggi
2023. 12. 7. 21:21
- 예외처리와 활용
while(true) {
try {
var num1 = readLine()!!.toInt()
println("내가 입력한 숫자는 ${num1}입니다")
break
} catch(e:java.lang.NumberFormatException) {
println("숫자를 입력하세요")
}
}
컴파일 에러가 뜨는 현상을 막기위해 try와 catch를 활용한다.
원래 숫자만 받는 toInt를 가졌을 때 숫자가 아닌 다른 것을 입력한다면 컴파일 에러, Exception in thread "main" java.lang.NumberFormatException 이라는 문구가 뜨면서 에러가 나는것을 볼 수 있다.
예외처리는 이렇게 오류가 나서 갑작스럽게 종료가 되는 것을 막기 위해 쓰는 문법이다.
예시대로 코드를 작성 하면 이렇게 출력되는 것을 볼 수 있다. 문자를 입력하면 계속 숫자를 입력하라고 뜨고 바르게 숫자를 입력하면 정답 코드가 나온다.
while (true){
try {
when (num1) {
1 -> {
Burgers().num2()
break}
2 -> {
Frozencustard().fro1()
break}
3 -> {
Drinks().drk1()
break}
4 -> {
Beer().bee1()
break}
0 -> {
println("종료합니다")
break}
else -> {
println("다시입력하시오")
return main()
}
}
} catch (e:java.lang.NumberFormatException){
println("숫자를 다시 입력하시오")
}
}
오늘 키오스크 과제에 바로 대입하여 다른번호가 뜨면 다시 입력하시오 밑에 문자를 썼을 때 오류가 나는 것을 막는 예외처리를 할 수 있었다.
이렇게 바로 넣긴 했는데 뭔가 브레이크가 많이 들어가기도 하고 이뻐보이진 않는다.
그리고 빼먹은게 계산을 할 수가 없다...
이후 저녁에 팀원들이랑 코드 공유를 하고 가장 잘 표현하신 분거를 메인으로 잡고 튜터님께 찾아가서 여쭤보기도 했는데...일단 해설이 나오고 봐야할거 같다. 진짜 딱 메뉴만 나오는 코드라서 lv1도 아직 안된거 같다.
이제 팀장님이 만든 레포지토리를 클론해서 가져오고 내 이니셜로 만든 브랜치를 만들고 여기다가 푸쉬를 했는데 잘 올라간 모습이다.
진짜 오늘 뭔가 나아간건 없는데 시간이 너무 빨리 지나간거 같다...일단 내일 해설부터 빨리 보자...