我正在爲我的寵物軟件構建API,並處於以下情況:什麼時候在API中引發異常?
使用其他服務的服務。我有一個使用其他服務來加載程序集的服務,我應該在加載程序集的服務或使用該服務的服務中引發異常嗎?
AssemblyService:
public class CommandService : ICommandService
{
private readonly IAssemblyService assemblyService;
public CommandService(IAssemblyService assemblyService)
{
this.assemblyService = assemblyService;
}
public CommandOutput Process(string inputCommand, string requestInfo)
{
string commandName = GetAssemblyName(inputCommand);
string args = GetArgs(inputCommand);
Assembly assembly = assemblyService.Load(commandName);
if (assembly == null) throw new UnknownCommandException(commandName);
ICommand command = assemblyService.GetCommand(assembly);
return command.Execute(args, requestInfo);
}
#region Private methods
...
#endregion
}
我應該拋出異常的AssemblyService或CommandService像上面的例子:使用AssemblyService
public class AssemblyService : IAssemblyService
{
public Assembly Load(string assemblyName)
{
Assembly assembly;
try
{
assembly = Assembly.Load(assemblyName);
}
catch
{
assembly = null;
}
return assembly;
}
...
}
服務?
我想學習如何處理一個例外,在上面的例子中的線assembly = Assembly.Load(assemblyName);
可以拋出ArgumentNullException
,ArgumentException
,FileNotFoundException
,FileLoadException
和BadImageFormatException
。我應該處理所有這些例外嗎?
UnknownCommandException(commandName) is a custom exception.
其他問題:任何人誰在使用我的API可以知道什麼時候一個方法可以拋出一個異常?我將鼠標放在.Net Framework的任何方法上,您會看到該方法是否會拋出異常。這可以用我的API的方法嗎?