728x90
대충 읽고 넘기려고했는데 안정적인 시스템을 위해선 에러처리가 중요해서... 다시 읽고 정리해야겠다.
복구 가능한 에러(recoverable error): 파일 없음과 같은 에러 . 사용자에게 문제 보고하고 재시도.
복구 불가능한 에러(unrecoverable error): 항상 같은 에러가 뜨는 경우. 프로그램 즉시 중단
- ex) 배열 길이를 넘어서는 인덱스를 사용하는 경우
1. panic!
패닉을 발생시키는 방법
- 복구 불가능한 에러 발생
- 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
'STUDY > Rust' 카테고리의 다른 글
Rust - 12. 라이프 타임 (1) | 2024.03.05 |
---|---|
Rust - 11. 제네릭 타입, 트레이트 (0) | 2024.03.04 |
Rust - 9. 컬렉션(vector, string, hash map) (0) | 2024.02.20 |
Rust - 8. 패키지, 크레이트, 모듈 (0) | 2024.02.19 |
Rust - 7. 구조체, 열거형, 패턴 매칭 (1) | 2024.02.17 |