Go에서 오류 메시지 비교
Go에서 오류는 단순히 오류 인터페이스를 구현하는 값입니다. 이는 표준 동등 연산자(== 및 !=)를 사용하여 오류를 비교할 수 있음을 의미합니다. 그러나 일반적으로 Error() 메서드에서 반환된 문자열 표현으로 오류를 비교하는 것은 권장되지 않습니다. 이는 문자열 표현이 시간이 지남에 따라 변경되어 코드가 불안정해질 수 있기 때문입니다.
오류를 비교하는 보다 안정적인 방법은 예상되는 오류를 저장하는 패키지 수준 변수를 사용하는 것입니다. 이 변수는 함수에서 반환된 오류와 비교하는 데 사용할 수 있습니다. 예:
package mypkg import ( "errors" ) // ErrExample is an example error. var ErrExample = errors.New("this is an example") // DoSomething returns an error if something goes wrong. func DoSomething() error { // ... // If something goes wrong, return the error. return ErrExample }
DoSomething()에서 반환된 오류와 비교하려면 다음 코드를 사용할 수 있습니다.
if err := DoSomething(); err != nil { // Handle the error. }
DoSomething()에서 반환된 오류가 다음과 같은 경우 ErrExample이면 if 문이 실행됩니다.
패키지 외부의 코드가 액세스해야 하는 경우 패키지 수준 변수를 내보낼 수도 있습니다. 오류. 예:
package mypkg import ( "errors" ) // ErrExample is an example error. var ErrExample = errors.New("this is an example") // Export the error. var ErrExample = ErrExample
내보낸 오류를 사용하려면 다음 코드를 사용할 수 있습니다.
if err := somepackage.DoSomething(); err != nil { // Handle the error. }
somepackage.DoSomething()에서 반환된 오류가 mypkg.ErrExample과 같은 경우 , 그러면 if 문이 실행됩니다.
패키지 수준 변수를 사용하여 오류를 비교하면 코드를 더 많이 만들 수 있습니다. 안정적이고 깨지기 쉽습니다.
위 내용은 Go에서 오류를 어떻게 안정적으로 비교할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!