私はカスタム例外を作成しようとしていますが、このカスタム例外が行う必要があるのは、例外のメッセージを変更するだけですが、元の例外のすべての属性があります。パラメータを使用してカスタム例外を作成する
メッセージは、送信するパラメータに基づいて変更されるという考えがあります。
public class ServiceDireccionException : Exception
{
public ServiceDireccionException(string type) : base(GetMessage(type)) { }
public enum TypeOfService
{
Provincia,
Municipio,
Localidad
}
private static string GetMessage(string type)
{
string message = "";
switch (type)
{
case nameof(TypeOfService.Provincia):
message = ("Sucedio un error al buscar la/s" + TypeOfService.Provincia.ToString() + "/s");
break;
case nameof(TypeOfService.Municipio):
message = ("Sucedio un error al buscar lo/s" + TypeOfService.Municipio.ToString() + "/s");
break;
case nameof(TypeOfService.Localidad):
message = ("Sucedio un error al buscar la/s" + TypeOfService.Localidad.ToString() + "/es");
break;
}
return message;
}
}
私は引数を渡すことはできませんtry catch
でそれを使用したい:
catch (ServiceDireccionException ex) //<-- It does not prompt me to pass a string.
{
throw ex;
}
'catch'がある*ありません*例外がインスタンス化される場所...そしてBTWでは、文字列ではなくコンストラクタに列挙型を渡す必要があります。 –
代わりに 'throw'ステートメントがインスタンス化される正しい場所です。だからどこで例外がスローされるのか調べてみましょう。 – HimBromBeere