Ich versuche, meine eigene Exception-Klasse in C# zu implementieren. Zu diesem Zweck habe ich eine von Exception abgeleitete CustomException-Klasse erstellt.Zurückgeben einer benutzerdefinierten Ausnahme
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) { }
}
Dann benutze ich es
static void Main(string[] args)
{
try
{
var zero = 0;
var s = 2/zero;
}
catch (CustomException ex)
{
Console.Write("Exception");
Console.ReadKey();
}
}
Ich erwarte ich werde meine Ausnahme erhalten, aber alles, was ich ist ein Standard DivideByZeroException bekommen. Wie kann ich eine Division durch Null-Ausnahme mit meiner CustomException-Klasse abfangen? Vielen Dank.
Warum beginnen sollte .NET Ihre Ausnahme zu benutzen? Sie müssen es selbst "werfen" (http://msdn.microsoft.com/en-us/library/1ah5wsex (v = vs.110) .aspx). –
okay, auch wenn ich hinzufügen, werfen neue Ausnahme zu fangen Abschnitt ich werde es nicht bekommen. Ich werde weiterhin Standard Ausnahme erhalten. Muss ich Code in meine CustomException schreiben, um DevideByZero Exceptions zu erfassen? – JohnyMotorhead
Sie sollten nicht, wenn Sie _before_ das div durch Null werfen oder Alexei Ansatz verwenden. Übrigens: Ich denke, es ist nicht gut, Ausnahmen zu ersetzen, es sei denn, Sie haben sehr gute Gründe. –