感谢您对这个问题的输入,我决定让我的 Create() 方法抛出异常,所以正如 Jon Skeet 所说,你不必到处处理它们,可以让它们冒泡,似乎是最好的方法对于更大的应用程序。
所以现在我用这段代码创建我的类的实例:
try
{
SmartForms smartForms = SmartForms.Create("ball");
smartForms.Show();
}
catch (CannotInstantiateException ex)
{
Console.WriteLine("Item could not be instantiated: {0}", ex.Message);
}
自定义异常:
using System;
namespace TestFactory234.Exceptions
{
class CannotInstantiateException : Exception
{
}
}
我怎么知道要使用哪个 Exception 类?
在上面的例子中,我创建了自己的异常,因为我不知道从哪里获得“所有系统异常”的列表,或者是否有一个“无法实例化对象”或者它是否有其他含义使用它等等。对我来说,选择一个异常类型似乎是一个随意的过程,所以创建我自己的似乎是最好的主意。
还是我错过了一些关于异常的东西?决定使用哪种异常类型涉及哪些其他含义?