Error Handling
当您使用 Atlas Go SDK 时,您可以获取 API 返回的错误的详细信息。 使用错误代码来确定错误原因。 要了解有关 API 错误代码的更多信息,请参阅 Atlas Administration API 错误代码。
正在获取错误对象
要获取错误对象,请执行以下命令:
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() apiError, ok := admin.AsError(err) fmt.Println(apiError)
检查是否存在特定错误代码
检查是否存在特定错误代码(例如 MAXIMUM_INDEXES_FOR_TENANT_EXCEEDED
),执行以下命令:
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() if admin.IsErrorCode(err, "code"){ // Do something }
检查特定响应状态代码是否存在
要检查是否存在特定 HTTP 响应错误代码,请执行以下命令:
// Surrounding code omitted for brevity projects, response, err := admin.ProjectsApi.ListProjects(ctx).Execute() apiError, ok := admin.AsError(err) if ok && apiError.GetError() == 404 { // Do something }
模拟错误
可以通过创建GenericOpenAPIError
结构的实例来模拟 SDK 错误。
// Surrounding code omitted for brevity apiError := admin.GenericOpenAPIError{} apiError.SetModel(admin.ApiError{ Detail: admin.PtrString("Error when listing clusters"), Error: admin.PtrInt(400), ErrorCode: admin.PtrString("CLUSTERS_UNREACHABLE"), Reason: admin.PtrString("Clusters unreachable"), }) apiError.SetError("Mocked error")
对于所有 SDK 模拟方法,结构体可以作为error
传递。