Rust

`panic!`이냐, `panic!`이 아니냐, 그것이 문제로다

그러면 언제 panic!을 쓰고, 언제 Result를 반환해야 할까요? 코드가 패닉을 일으키면 호출자는 복구 경로를 잃습니다.

예제, 프로토타입 코드, 그리고 테스트와 여러분이 컴파일러보다 더 많은 정보를 가지...를 중심으로 panic!이냐, panic!이 아니냐, 그것이 문제로다의 판단 흐름을 읽습니다.

핵심 흐름

1

컬렉션 정리

러스트의 에러 처리 기능은 여러분이 더 견고한 코드를 작성하는 데 도움을 주도록 설계되었습니다.

2

예제, 프로토타입 코드, 그리고 테스트

더 많은 정보를 가지고 있을 때Result가 Ok 값을 가지고 있을 거라 확신할만한 논리적 근거가 있지만,컴파일러가 그 논리를 이해할 수 없는 경우라면, unwrap 혹은...

3

여러분이 컴파일러보다 더 많은 정보를 가지...

아래에 예제가 있습니다.여기서는 하드코딩된 문자열을 파싱하여 IpAddr 인스턴스를 만드는 중입니다.127.0.0.1이 유효한 IP 주소라는 사실을 알 수 있으므로...

4

에러 처리를 위한 가이드라인

함수에 대한 계약은, 특히 계약 위반이패닉의 원인이 될 때는, 그 함수에 대한 API 문서에 설명되어야 합니다.하지만 모든 함수 내에서 수많은 에러 검사를 한다는 것은...