티스토리 뷰
728x90
오늘은 fatal Error에 대해 공부해보려고 합니다.
예를들어 정해진 index보다 초과해서 접근하려는 경우 fatal error가 발생하기도 하고 이외에도 여러가지가 있는데요.
바로 공식문서 부터 보겠습니다.
Fatal Error
무조건 실행을 중지하고 메시지를 출력합니다.
정의
func fatalError(
_ message: @autoclosure () -> String = String(),
file: StaticString = #file,
line: UInt = #line
) -> Never
(으.. Never는 또 뭐야..)
Never는 값이 없는 타입을 말한다네요. (정상적으로 리턴하지 않는 함수의 리턴 타입)
즉, fataError는 메소드에서 리턴할 것이 없을때, 생각지 못한 에러가 있을때 사용하면 문제되는 부분을 알 수 있습니다.
사용 예제를 볼게요.
아래는 tableView에서 cellForRowAt 메서드 구현하는 부분입니다.
override func tableView(_ tableView: UITalbeView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(
withReuseIdentifier: BookCell.identifier,
for: indexPath
) as? BookCell else { fatalError("BookCell을 불러오는데 실패했습니다.") }
return cell
}
TableViewCell을 리턴하는데 BookCell이라는 Cell을 리턴하고 싶어요.
근데 만약 BookCell이라는게 없을때, 보통은 UITableViewCell()로 return을 하도록 구현하지만 결국은 빈 Cell이니까 의미가 없습니다.
return을 사용하는것 보다 fatal Error()를 호출해서 타입캐스트가 실패하면 적절한 메시지를 남겨놓는게 더 좋은 방법입니다.
물론 fatalError가 호출되면 앱이 죽는 현상이 나타나기 때문에 호출될일이 없도록 해야하겠지만, 추후 디버깅을 하는데에는 도움이 됩니다.
참고
https://www.hackingwithswift.com/example-code/language/how-to-force-a-crash-using-fatalerror
728x90
'iOS' 카테고리의 다른 글
[Combine] Chapter 3: Transforming Operators (0) | 2022.10.28 |
---|---|
[Combine] 개념 (0) | 2022.10.13 |
[Swift] 고급연산자 (Advanced Operators) - 비트연산자 (0) | 2022.09.22 |
[Swift] 접근제어 (Access Control) (0) | 2022.09.17 |
[iOS] Scroll top (스크롤바 최상단 이동) (0) | 2022.09.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- swift protocol
- Swift 알고리즘
- swift 고차함수
- RIBs tutorial
- Swift joined
- Swift Error Handling
- ios
- Swift init
- Swift joined()
- Combine: Asynchronous Programming with Swift
- CS 네트워크
- Swift
- 2023년 회고
- Swift 내림차순
- 원티드 프리온보딩
- removeLast()
- swift property
- swift (programmers)
- Swift 프로그래머스
- Swift inout
- swift programmers
- Swift 프로퍼티
- Swift Leetcode
- Swift final
- RTCCameraVideoCapturer
- Swift ModernRIBs
- Class
- swift reduce
- iOS error
- Swift RIBs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함