Thinking Different




Panic!

Rust는 에러 처리 부분을 복구 가능한 에러와 복구 불가능한 에러를 구분해서 처리한다.

복구 가능한 에러는 Result<T, E>로 처리하고, 복구 불가능한 에러는 panic!으로 처리한다.

panic! 매크로가 호출되면 실패 메세지를 출력하고, 스택을 되감고 청소하고, 그 후 프로그램 실행이 종료된다.

 

Panic! 매크로 사용 예제

fn main()
{
    panic!("crash and exit!");
}

 

 

abort 처리

panic! 매크로의 경우 스택 되감기와 청소로 인해 프로그램으로서는 부담되는 일이 된다. 이를 대안하기 위해 abort 라는 것이 있는데 이는 스택되감기 등 뒷처리를 하지 않고 바로 종료시켜버리는 옵션이다. 이후 처리되지 않은 작업들은 OS에 넘기게 된다.

 

abort를 사용하기 위한 설정방법

Cargo.toml 파일 내에서 [profile] 색션에 아래와 같은 한줄을 추가하면 된다.

Cargo.toml 파일

[profile.release]
panic = 'abort'