Я пытаюсь реализовать свой собственный класс исключения на C#. Для этого я создал класс CustomException, полученный из Exception.Возврат специального исключения
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) { }
}
Затем я использую его
static void Main(string[] args)
{
try
{
var zero = 0;
var s = 2/zero;
}
catch (CustomException ex)
{
Console.Write("Exception");
Console.ReadKey();
}
}
Я ожидаю, что я получу исключение, но все это я получаю стандартный DivideByZeroException. Как я могу поймать деление на нулевое исключение, используя мой класс CustomException? Благодарю.
Почему .NET начать использовать исключение? Вы должны ['throw'] (http://msdn.microsoft.com/en-us/library/1ah5wsex (v = vs.110) .aspx) сами. –
в порядке, даже если я добавлю бросить новое исключение, чтобы поймать раздел, я не получу его. Я по-прежнему получаю стандартное исключение. Нужно ли мне писать код в моем CustomException, чтобы поймать исключения DevideByZero? – JohnyMotorhead
Вы не должны, если вы бросаете _before_ div на ноль или используете подход Алексея. Кстати: я считаю, что не стоит заменять исключения, если у вас нет веских оснований. –