この質問に関するご意見をお寄せいただきありがとうございます。Jon Skeet が言ったように、Create() メソッドに例外をスローさせることにしました。より大きなアプリケーション向け。
そこで、次のコードを使用してクラスのインスタンスを作成します。
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
{
}
}
どの例外クラスを使用するかを知るにはどうすればよいですか?
上記の例では、「すべてのシステム例外」のリストを取得する場所がわからないため、または「オブジェクトをインスタンス化できない」ためのリストがまだあるかどうか、または他の意味があるかどうか、独自の例外を作成しました。私にとって例外タイプを選択することは、常にそのような恣意的なプロセスのように思われるため、独自の例外タイプを作成することが一般的には最良のアイデアのようです。
または、例外について何か不足していますか? どの例外タイプを使用するかを決定する際に、他にどのような影響がありますか?