in src/Microsoft.Azure.Relay/WebSocketExceptionHelper.cs [72:96]
static Exception CreateExceptionForStatus(HttpStatusCode statusCode, string statusDescription, Exception inner, TrackingContext trackingContext, bool isListener)
{
if (trackingContext != null)
{
statusDescription = trackingContext.EnsureTrackableMessage(statusDescription);
}
switch (statusCode)
{
case HttpStatusCode.Unauthorized:
return new AuthorizationFailedException(statusDescription, inner);
case HttpStatusCode.NotFound:
return new EndpointNotFoundException(statusDescription, inner, isTransient: !isListener);
case HttpStatusCode.GatewayTimeout:
case HttpStatusCode.RequestTimeout:
return new TimeoutException(statusCode + ": " + statusDescription, inner);
case HttpStatusCode.BadRequest:
case HttpStatusCode.InternalServerError:
case HttpStatusCode.NotImplemented:
case HttpStatusCode.BadGateway:
case HttpStatusCode.ServiceUnavailable:
default:
return new RelayException(statusCode + ": " + statusDescription, inner);
}
}