Próbuję zaimplementować własną klasę wyjątków w języku C#. W tym celu utworzyłem klasę CustomException wywodzącą się z Exception.Zwracanie niestandardowego wyjątku
class CustomException : Exception
{
public CustomException()
: base() { }
public CustomException(string message)
: base(message) { }
public CustomException(string format, params object[] args)
: base(string.Format(format, args)) { }
public CustomException(string message, Exception innerException)
: base(message, innerException) { }
public CustomException(string format, Exception innerException, params object[] args)
: base(string.Format(format, args), innerException) { }
}
Następnie używam go
static void Main(string[] args)
{
try
{
var zero = 0;
var s = 2/zero;
}
catch (CustomException ex)
{
Console.Write("Exception");
Console.ReadKey();
}
}
Czekam otrzymam wyjątek ale mam to standard DivideByZeroException. Jak mogę złapać wyjątek dzielenia przez zero przy użyciu mojej klasy CustomException? Dzięki.
Dlaczego .NET zacząć korzystać z wyjątku? Musisz ['throw'] (http://msdn.microsoft.com/en-us/library/1ah5wsex (v = vs.110) .aspx) sam. –
ok, nawet jeśli dodam nowy wyrzutek, aby złapać sekcję, nie dostanę. Nadal będę otrzymywać wyjątek standartowy. Czy muszę napisać kod w moim wyjątku CustomException, aby złapać wyjątki DevideByZero? – JohnyMotorhead
Nie powinieneś, jeśli rzuciłeś _befce_dla o zero lub używasz podejścia Aleksieja. Przy okazji: myślę, że nie jest dobrą praktyką zastępowanie wyjątków, chyba że masz bardzo dobre powody. –