У меня есть следующий код в «основной» метод:Как поймать пользовательских исключений
static void Main(string[] args)
{
try
{
int a = 0;
int b = 5;
b /= a;
}
catch (MyException ex)
{
Console.WriteLine(ex.Message)
}
}
И MyException класс как:
public class MyException : Exception
{
public MyException()
{
}
}
Программа перерывы на b /= a;
тогда я ожидая, что он перейдет к команде catch
. Если я заменил MyException
на Exception
, исключение поймано и программа не сломается.
Как я могу поймать пользовательское исключение?
Почему «b/= a» выбрасывает ваше исключение? Он выдает «System.DivideByZeroException».Если вы хотите поймать свое исключение, вы должны бросить свое исключение. Как вы думаете, что вы делаете, создавая собственное исключение? – Random832
, потому что MyException унаследовано от Exception. поэтому я ожидаю, что поймаю любое исключение. – yazanpro
Если DevisionByZeroException - это то, что выбрано, так как это исключение не списано в MyException, оно не попадает в catch (MyException) – Alireza