201 lines
7.7 KiB
C#
201 lines
7.7 KiB
C#
using System;
|
|
using System.Runtime.Serialization;
|
|
using UnityEngine.ResourceManagement.ResourceLocations;
|
|
using UnityEngine.ResourceManagement.Util;
|
|
|
|
namespace UnityEngine.ResourceManagement.Exceptions
|
|
{
|
|
/// <summary>
|
|
/// Base class for all ResourceManager related exceptions.
|
|
/// </summary>
|
|
public class ResourceManagerException : Exception
|
|
{
|
|
/// <summary>
|
|
/// Construct a new ResourceManagerException.
|
|
/// </summary>
|
|
public ResourceManagerException()
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Construct a new ResourceManagerException.
|
|
/// </summary>
|
|
/// <param name="message">Message to describe the exception.</param>
|
|
public ResourceManagerException(string message) : base(message)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Construct a new ResourceManagerException.
|
|
/// </summary>
|
|
/// <param name="message">Message to describe the exception.</param>
|
|
/// <param name="innerException">Inner exception that caused this exception.</param>
|
|
public ResourceManagerException(string message, Exception innerException) : base(message, innerException)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Construct a new ResourceManagerException.
|
|
/// </summary>
|
|
/// <param name="message">Message to describe the exception.</param>
|
|
/// <param name="context">Context related to the exception.</param>
|
|
protected ResourceManagerException(SerializationInfo message, StreamingContext context) : base(message, context)
|
|
{
|
|
}
|
|
|
|
/// <summary>Provides a new string object describing the exception.</summary>
|
|
/// <returns>A newly allocated managed string.</returns>
|
|
public override string ToString() => $"{GetType().Name} : {base.Message}\n{InnerException}";
|
|
}
|
|
|
|
/// <summary>
|
|
/// Exception returned when the IResourceProvider is not found for a location.
|
|
/// </summary>
|
|
public class UnknownResourceProviderException : ResourceManagerException
|
|
{
|
|
/// <summary>
|
|
/// The location that contains the provider id that was not found.
|
|
/// </summary>
|
|
public IResourceLocation Location { get; private set; }
|
|
|
|
/// <summary>
|
|
/// Construct a new UnknownResourceProviderException
|
|
/// </summary>
|
|
/// <param name="location">The location that caused the exception to be created.</param>
|
|
public UnknownResourceProviderException(IResourceLocation location)
|
|
{
|
|
Location = location;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Construct a new UnknownResourceProviderException
|
|
/// </summary>
|
|
public UnknownResourceProviderException()
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Construct a new UnknownResourceProviderException
|
|
/// </summary>
|
|
/// <param name="message">Message to describe the exception.</param>
|
|
public UnknownResourceProviderException(string message) : base(message)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Construct a new UnknownResourceProviderException
|
|
/// </summary>
|
|
/// <param name="message">Message to describe the exception.</param>
|
|
/// <param name="innerException">Inner exception that caused this exception.</param>
|
|
public UnknownResourceProviderException(string message, Exception innerException) : base(message, innerException)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Construct a new UnknownResourceProviderException
|
|
/// </summary>
|
|
/// <param name="message">Message to describe the exception.</param>
|
|
/// <param name="context">Context related to the exception.</param>
|
|
protected UnknownResourceProviderException(SerializationInfo message, StreamingContext context) : base(message, context)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns a string describing this exception.
|
|
/// </summary>
|
|
public override string Message
|
|
{
|
|
get { return base.Message + ", ProviderId=" + Location.ProviderId + ", Location=" + Location; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns string representation of exception.
|
|
/// </summary>
|
|
/// <returns>String representation of exception.</returns>
|
|
public override string ToString()
|
|
{
|
|
return Message;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Class that represent an error that occured during an AsyncOperation.
|
|
/// </summary>
|
|
public class OperationException : Exception
|
|
{
|
|
/// <summary>
|
|
/// Creates a new instance of <see cref="OperationException"/>.
|
|
/// </summary>
|
|
/// <param name="message">A message describing the error.</param>
|
|
/// <param name="innerException">The exception that caused the error, if any.</param>
|
|
public OperationException(string message, Exception innerException = null) : base(message, innerException)
|
|
{
|
|
}
|
|
|
|
/// <summary>Provides a new string object describing the exception.</summary>
|
|
/// <returns>A newly allocated managed string.</returns>
|
|
public override string ToString() => $"{GetType().Name} : {base.Message}\n{InnerException}";
|
|
}
|
|
|
|
/// <summary>
|
|
/// Class that represent an error that occured during a ProviderOperation.
|
|
/// </summary>
|
|
public class ProviderException : OperationException
|
|
{
|
|
/// <summary>
|
|
/// Creates a new instance of <see cref="ProviderException"/>.
|
|
/// </summary>
|
|
/// <param name="message">A message describing the error.</param>
|
|
/// <param name="location">The resource location that the operation was trying to provide.</param>
|
|
/// <param name="innerException">The exception that caused the error, if any.</param>
|
|
public ProviderException(string message, IResourceLocation location = null, Exception innerException = null)
|
|
: base(message, innerException)
|
|
{
|
|
Location = location;
|
|
}
|
|
|
|
/// <summary>
|
|
/// The resource location that the operation was trying to provide.
|
|
/// </summary>
|
|
public IResourceLocation Location { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Class representing an error occured during an operation that remotely fetch data.
|
|
/// </summary>
|
|
public class RemoteProviderException : ProviderException
|
|
{
|
|
/// <summary>
|
|
/// Creates a new instance of <see cref="ProviderException"/>.
|
|
/// </summary>
|
|
/// <param name="message">A message describing the error.</param>
|
|
/// <param name="location">The resource location that the operation was trying to provide.</param>
|
|
/// <param name="uwrResult">The result of the unity web request, if any.</param>
|
|
/// <param name="innerException">The exception that caused the error, if any.</param>
|
|
public RemoteProviderException(string message, IResourceLocation location = null, UnityWebRequestResult uwrResult = null, Exception innerException = null)
|
|
: base(message, location, innerException)
|
|
{
|
|
WebRequestResult = uwrResult;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns a string describing this exception.
|
|
/// </summary>
|
|
public override string Message => this.ToString();
|
|
|
|
/// <summary>
|
|
/// The result of the unity web request, if any.
|
|
/// </summary>
|
|
public UnityWebRequestResult WebRequestResult { get; }
|
|
|
|
/// <summary>Provides a new string object describing the exception.</summary>
|
|
/// <returns>A newly allocated managed string.</returns>
|
|
public override string ToString()
|
|
{
|
|
if (WebRequestResult != null)
|
|
return $"{GetType().Name} : {base.Message}\nUnityWebRequest result : {WebRequestResult}\n{InnerException}";
|
|
else
|
|
return base.ToString();
|
|
}
|
|
}
|
|
}
|