choco5958
지마의 개발일기
choco5958
전체 방문자
오늘
어제
  • 전체보기 (46)
    • 개발 (34)
      • Java (0)
      • JavaScript (7)
      • Php (4)
      • Ios(Swift) (23)
    • 프론트엔드 (7)
      • Html (1)
      • Css (5)
    • 백엔드 (0)
      • Mysql (0)
      • Oracle (0)
      • MongoDB (0)
    • 서버 (2)
      • Linux (2)
    • 일상 (3)
      • 반려동물 (1)
      • 베이킹 (2)
      • 맛집 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • ios#swift#스위프트#애플#아이폰#assert#guard
  • ios#swifth#스위프트#열거형#아이폰#애플
  • php#500error
  • ios#swift#스위프트#애플#아이폰
  • ios#swift#스위프트#아이폰#클래스#애플
  • ios#swift#스위프트#아이폰#애플#프로토콜
  • ios#swift#스위프트#아이폰#애플#옵셔널체이닝
  • ios#swift스위프트#애플#아이폰#클래스#구조체
  • 자바스크립트#javascript#js#개발#웹개발
  • ios#swift#스위프트#아이폰#애플#타입캐스팅
  • ios#swift#스위프트#아이폰#애플#상속
  • ios#swift#스위프트#조건문#아이폰#애플
  • ios#swift#스위프트#구조체#문법#애플#아이폰
  • ios#swift#스위프트#프로퍼티#애플#아이폰
  • ios#swift#스위프트#애플#아이폰#고차함수
  • swift#ios#스위프트#애플#아이폰#init#초기화구문
  • ios#swift#스위프트#클로저#애플#아이폰
  • ios#swift#스위프트#애플#아이폰#try-catch#오류처리
  • ios#swift#스위프트#아이폰#애플#함수
  • php#linux#soap#리눅스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
choco5958

지마의 개발일기

개발/Ios(Swift)

IOS 스위프트(Swift) 문법 - try-catch

2021. 8. 25. 22:42

에러 처리란?

 

프로그램 내에서 에러가 발생한 상황에 대해 대응하고 이를 복구하는 과정입니다.

- 발생(throwing)

- 감지(catching)

- 전파(propagating)

- 조작(manipulating)

 

enum PhoneError: Error {
    case unknown
    case batteryLow(batteryLevel: Int)
}

//throw PhoneError.batteryLow(batteryLevel: 20)

func checkPhoneBatteryStatus(batteryLevel: Int) throws -> String {
    guard batteryLevel != -1 else { throw PhoneError.unknown }
    guard batteryLevel > 20 else { throw
        PhoneError.batteryLow(batteryLevel: 20)}
    return "배터리 상태가 정상입니다."
}


/*
 do {
   try 오류 발생 가능코드
 } catch 오류 패턴 {
   처리 코드
 }
 */

do {
    try checkPhoneBatteryStatus(batteryLevel: 20)
} catch PhoneError.unknown {
    print("알 수 없는 에러입니다.")
} catch PhoneError.batteryLow(let baterryLevel) {
    print("배터리 전원 부족 남은 배터리 : \(baterryLevel)%")  //"배터리 전원 부족 남은 배터리 : 20%\n"
} catch {
    print("그 외 오류 발생 : \(error)")
}

let status = try? checkPhoneBatteryStatus(batteryLevel: 30)  //"배터리 상태가 정상입니다."
print(status)  //"Optional("배터리 상태가 정상입니다.")\n"

let status2 = try! checkPhoneBatteryStatus(batteryLevel: 30)  //"배터리 상태가 정상입니다."
print(status2)  //"배터리 상태가 정상입니다.\n"

'개발 > Ios(Swift)' 카테고리의 다른 글

IOS 스위프트(Swift) 문법 - 고차함수  (0) 2021.08.26
IOS 스위프트(Swift) 문법 - 클로저  (0) 2021.08.26
IOS 스위프트(Swift) 문법 - 옵셔널 체이닝  (0) 2021.08.25
IOS 스위프트(Swift) 문법 - 열거형  (0) 2021.08.25
IOS 스위프트(Swift) 문법 - 익스텐션  (0) 2021.08.25
    '개발/Ios(Swift)' 카테고리의 다른 글
    • IOS 스위프트(Swift) 문법 - 고차함수
    • IOS 스위프트(Swift) 문법 - 클로저
    • IOS 스위프트(Swift) 문법 - 옵셔널 체이닝
    • IOS 스위프트(Swift) 문법 - 열거형
    choco5958
    choco5958
    안녕하세요. 개발 및 일상 팁 들을 포스팅하는 블로그입니다.

    티스토리툴바