STUDY/Rust

Rust - 10. 에러 처리

sinawi95 2024. 2. 26. 19:54
728x90

대충 읽고 넘기려고했는데 안정적인 시스템을 위해선 에러처리가 중요해서... 다시 읽고 정리해야겠다.


복구 가능한 에러(recoverable error): 파일 없음과 같은 에러 . 사용자에게 문제 보고하고 재시도. 

복구 불가능한 에러(unrecoverable error): 항상 같은 에러가 뜨는 경우. 프로그램 즉시 중단

  • ex) 배열 길이를 넘어서는 인덱스를 사용하는 경우

1. panic!

패닉을 발생시키는 방법

  1. 복구 불가능한 에러 발생
  2. panic! 매크로 호출

패닉이 발생하면 실패 메세지 출력하고 되감은뒤(unwind; 어디서 에러가 났는지 추적), 스택을 청소하고 종료함

  • unwinding대신 aborting(즉각종료)을 수행하게 할 수 있음.

2. Result

(복구 가능한)에러가 발생했을때 복구하는 방법

enum Result<T, E> {
    Ok(T),
    Err(E),
}
  • match와 중첩해서 사용가능

unwrap, expect: 숏컷 메서드 사용 가능

propagating, ?: 에러 전파

 


https://doc.rust-kr.org/ch09-00-error-handling.html