using System; using System.Collections.Generic; using System.Runtime.Serialization; using System.Text; using COSXML.Model.Tag; /** * Copyright (c) 2018 Tencent Cloud. All rights reserved. * 11/2/2018 11:27:27 AM * bradyxiao */ namespace COSXML.CosException { /// /// CosServerException for cos server error. /// /// [Serializable] public class CosServerException : System.ApplicationException { /// /// http status code /// public int statusCode; /// /// http status message /// public string statusMessage; /// /// cos server error code /// public string errorCode; /// /// cos server error message /// public string errorMessage; /// /// cos server requestId for tracking error /// public string requestId; /// /// cos server trace id /// public string traceId; /// /// cos server resuorce /// public string resource; public CosServerException(int statusCode, string statusMessage, CosServerError serverError) :this(statusCode, statusMessage) { if (serverError != null) { this.resource = serverError.resource; this.errorCode = serverError.code; this.errorMessage = serverError.message; this.requestId = serverError.requestId; this.traceId = serverError.traceId; } } public CosServerException(int statusCode, string statusMessage) : base("server exception: " + statusCode) { this.statusCode = statusCode; this.statusMessage = statusMessage; } public void SetCosServerError(CosServerError serverError) { if (serverError != null) { this.resource = serverError.resource; this.errorCode = serverError.code; this.errorMessage = serverError.message; this.requestId = serverError.requestId; this.traceId = serverError.traceId; } } public string GetInfo() { StringBuilder builder = new StringBuilder(); builder.Append("(") .Append("statusCode = ").Append(statusCode).Append(", statusMessage = ").Append(statusMessage) .Append(", errorCode = ").Append(errorCode).Append(", errorMessage = ").Append(errorMessage) .Append(", requestId = ").Append(requestId).Append(", traceId = ").Append(traceId) .Append(", resouce = ").Append(resource) .Append(")"); return builder.ToString(); } } }