일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 계엄령 외신반응
- 원스휴먼 황금양
- 2차 비상계엄
- 2차계엄
- 원스휴먼 레시피 파밍
- 원스휴먼 레시피
- 홈플러스 시그니처 모카골드믹스커피
- 원스휴먼 먹이
- 원스휴먼 황금양 구하기
- 원스휴먼 스타크롬
- 계엄령
- 커피추천
- 원스휴먼 사료
- 유광버섯 통조림
- 레시피 파밍
- 1203계엄령
- 원스휴먼 동물
- 믹스커피
- 원달러환율
- 믹스커피추천
- 홈플러스
- 윤석열
- 국방부
- 원스휴먼 황금양털파밍
- 시그니처
- 원스휴먼 쿠폰
- 원스휴먼 요리
- 비상계엄령
- 일론머스크
- Today
- Total
0101011001010111
kotlin4-3 예외처리의 필요성 본문
▼예외처리가 필요한 경우
- 고품질의 프로그램이란 사용성을 해치지 않아야해요. -여러 측면의 사용성이 있지만 프로그램이 도중에 종료되는 건 심각한 문제예요. -미리 예외를 생각하고 소스코드를 작성해야 안정성을 높인 프로그램이라고 할 수 있어요. |
예외 발생 '전' 예외처리 |
-숫자를 입력받아서 더하는 프로그램인데 실수로 문자를 입력했다면 예외를 처리해야 해요. - 사진을 다운로드 받는데 도중에 인터넷이 끊겼다면 예외를 처리해야해요. - 수술을 받고 있는데 메인전력이 끊겼다면 보조 전력을 사용하도록 예외를 처리해야해요 |
실행 도중에 발생하는 예외에 대한 처리 |
예외 : 실행 도중 발생하는 에러를 예외라고 한다.
예외 처리문법예시를 알아보자.
예 : 먼저 숫자를 입력해야하는데 , 실수로 문자를 입력했을 때 > 예외처리
숫자를 입력해야하는데 문자를 입력했을 경우, 이렇게 NumberFormatException 이라는게 발생되고 종료가 됩니다.
어떻게 처리할까? ▼
while(true) {
try {
var num1 = readLine()!!.toInt()
println("내가 입력한 숫자는 ${num1}입니다")
break
} catch(e:java.lang.NumberFormatException) {
println("숫자를 입력하세요")
}
}
코드 설명 ▼
while(true) //while(true)하면, 코드가 평생 돔. 무한 루프임 , 저는 이 코드를 보고 고구마 코드가 더 어울리겠다 생각했음.
ㄴ 왜냐면 얘가 원하는 값을 줄 때 까지 계속 - 돌기 때문에 // break를 통해 원하는 값을 얻었다면 중지 시킨다.
- 위 코드는 while(true)를 통해 계속 도는데, 언제까지 도냐? >> while(true)라는 친구가 원하는 값을 주면 break를 한다.
만약, 원하는 값을 주지 않고 예외가 발생하면 , catch로 떨어지기 때문에, 다시 while로 돌아와서 또 입력하게 한다.
즉, 숫자를 입력할 때 까지 이 고구마는 너에게 계속 물을것이다.
NumberFormatException은 숫자 형식이 아닌 문자열을 숫자로 변환하려고 할 때 발생하는 특수한 종류의 예외입니다.
try-catch-finally은,
예외 처리와 관계없이 항상 실행하는 코드를 finallly에 작성해요
이게 어떤거에 필요하냐면 ▼
USB와 연결하는 코드는 반드시 사용후에 연결을 끊어야해요 (자원낭비)
ㄴ USB와 연결하다가, 도중에 끊길 경우에 예외처리를 했는데, 만약에 이게 잘 연결 되었더라도 USB를 할당하지 않으면 계속 메모리에 남게 되거든요. 자원낭비가 됩니다! 그래서 그런걸 방지하기위해 try - catch - finally를 사용한다.
GPS를 사용하는 코드는 반드시 사용후에 연결을 끊어야해요 (자원낭비)
예제▼
fun main() {
while(true) {
try {
var num1 = readLine()!!.toInt()
println("내가 입력한 숫자는 ${num1}입니다")
break
} catch(e:java.lang.NumberFormatException) {
println("숫자를 입력하세요")
} finally {
println("키보드와의 연결은 정상적입니다")
}
}
}
자, try-catch-finally는 try-catch까지는 똑같아요.
하지만 try-catch와 상관없이 항상 실행되는 구문을 finally에 넣습니다.
'Kotlin > 스파르타_코틀린 문법' 카테고리의 다른 글
Kotlin_4-5 널 세이프티 ? !! ?. ?: (0) | 2023.08.02 |
---|---|
kotlin4-4 지연 초기화 (0) | 2023.08.02 |
kotlin4-2 예외처리의 활용 (0) | 2023.08.02 |
kotlin4-1 접근제한자 (0) | 2023.08.02 |
3주차까지 내용은 이전 네이버 블로그에 정리 해 두었다. (0) | 2023.08.02 |