본문 바로가기

개발 & IT/백엔드

[Swift] EXC_BREAKPOINT (SIGTRAP)

반응형

앱이 특정 케이스에서 crash 되는 오류가 발생.

오류를 보니 EXC_BREAKPOINT 라는 exception이 발생했다.

 

Apple Developer Documentation

 

developer.apple.com

 

애플 문서를 보면,,

trace trap이 특정 지점에 프로세스를 중단했다는 말이라고 하는데..

swift 런타임은 복구할 수 없는 오류가 발생했을 경우 trace trap을 사용해서 프로세스를 중단시킨다고 한다. 

https://developer.apple.com/documentation/xcode/addressing-crashes-from-swift-runtime-errors

 

Apple Developer Documentation

 

developer.apple.com

관련 문서를 보면 nil 이 될수 있는 optional 변수를 force unwrap할 때 발생한다고 한다.

 

exception type 명 답게 코드상의 중단점을 제공한다.

코드를 확인해 보니


if(..) {
    let currUrl = webView.url
    if currUrl!.path.contains("먀먀") {
        .
        .

    }
}

이렇게 nil 이 될 가능성이 무궁무진한 변수를 force unwraping 해주고 있었다.

보통은 xcode에서 해당 에러를 잡아주는데,, 특정 조건(if) 안에서 발생했기 때문인지 오류가 나지 않았다.

그러다 보니 앱을 발행했을 때 런타임 오류가 나버림.

if(..) {
    let currUrl = webView.url?.path ?? ""
    if currUrl.contains("먀먀") {
        .
        .
    }
}

위와 같이 nil 경우에 대한 default 값을 넣어주는 방법으로 오류를 막았다.

반응형

'개발 & IT > 백엔드' 카테고리의 다른 글

[fluent-ffmpeg] video codec 변경  (1) 2022.09.28
[PHP] XMLWriter  (0) 2022.09.19
[laravel5.5] 302 redirect status code  (2) 2022.09.06
[Swift] hierarchy 문제  (0) 2022.08.30
[laravel 5.5/QueryBuilder] SubQuery  (1) 2022.08.30