채널을 사용하여 고루틴에서 오류 전달
Go에서 함수는 일반적으로 제공된 createHashedPassword 함수에 설명된 대로 값과 선택적 오류를 반환합니다. . 고루틴에서 이 함수를 실행할 때 일반적인 접근 방식은 채널을 통해 결과를 전달하는 것입니다. 그러나 이 설정 내에서 오류를 처리하려면 특별한 고려가 필요합니다.
고루틴에서 오류를 효과적으로 처리하려면 잠재적인 오류를 포함한 출력 값을 사용자 정의 구조체에 캡슐화하는 것이 좋습니다. 단일 채널을 통해 이 구조체를 전달하면 결과와 관련 오류를 모두 쉽게 반환할 수 있습니다.
예를 들어 예상 출력에 대한 메시지와 발생한 오류에 대한 두 필드가 있는 결과 구조체를 생성할 수 있습니다. 오류:
type Result struct { Message string Error error }
다음으로 Result 구조체 전송을 위해 특별히 채널을 초기화합니다.
ch := make(chan Result)
이제 고루틴 내에서 createHashedPassword 함수를 실행하고 결과를 Result 변수에 할당합니다.
go func() { result := Result{ Message: createHashedPassword(), Error: err, // Any potential error encountered during execution } ch <- result }()
수신 측에서는 결과를 검색하고 오류가 있는지 확인할 수 있습니다.
select { case result := <-ch: if result.Error != nil { // Handle the error } // Do something with result.Message }
위 내용은 채널을 사용할 때 고루틴의 오류를 어떻게 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!