본문 바로가기

내일배움캠프

본 캠프 14일차

  • 예외처리와 활용
		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도 아직 안된거 같다.

 

이제 팀장님이 만든 레포지토리를 클론해서 가져오고 내 이니셜로 만든 브랜치를 만들고 여기다가 푸쉬를 했는데 잘 올라간 모습이다.

 

진짜 오늘 뭔가 나아간건 없는데 시간이 너무 빨리 지나간거 같다...일단 내일 해설부터 빨리 보자...

'내일배움캠프' 카테고리의 다른 글

본 캠프 16일차 - 컬렉션(List, Map, Set)  (1) 2023.12.11
본 캠프 15일차 -쓰레드  (1) 2023.12.08
본 캠프 13일차  (1) 2023.12.06
본 캠프 12일차  (2) 2023.12.05
본 캠프 11일차  (1) 2023.12.04