Go에서 오류 메시지 비교
Java에서는 GetMessage()를 사용하여 예외에서 오류 메시지를 검색할 수 있습니다. 그러나 Go에는 오류 유형에 대해 정의된 동등한 메소드가 없습니다. 대신, 사용자 정의 오류 처리 기술을 사용해야 합니다.
사용자 정의 오류 처리
한 가지 접근 방식은 패키지 수준 변수를 정의하여 원하는 특정 오류 메시지를 나타내는 것입니다. 확인하십시오. 예를 들어:
var errExample = errors.New("this is an example")
오류를 반환할 때 일반 오류 문자열 대신 이 변수를 사용할 수 있습니다.
if err := some_package.DoSomething(); err != nil { if err == errExample { // handle it however. } }
오류 변수 내보내기
패키지 외부 코드가 오류에 액세스해야 하는 경우 대문자를 사용하여 변수를 내보낼 수 있습니다. letter:
var ErrExample = errors.New("this is an example")
내보낸 변수와 오류를 비교할 수 있습니다.
if err == somepackage.ErrExample { // handle it }
예
함정: 문자열을 피하세요 비교
오류의 Error() 메서드에서 반환된 문자열과 비교하고 싶은 유혹에 빠지지 마세요. 이로 인해 취약한 코드가 발생할 수 있습니다. 예를 들면 다음과 같습니다.
if err.Error() == "this is an example" { // this is not recommended }
대신 위에 설명된 사용자 정의 오류 처리 접근 방식을 사용하세요.
위 내용은 Java의 GetMessage()와 달리 Go에서 오류를 효과적으로 비교하고 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!