2014-01-29 2 views
0

Когда я инициализации переменной до нуля, как int i=0, он бросает исключение:Как я могу справиться с этими ошибками «попытка деления на ноль»?

Попытка разделить на ноль

Как это возможно? Исключение выбрасывается в других случаях, также, как получение нулевого индексированного значения из коллекции: collection[0] и if(a%b==0) и т. Д.

Просьба предложить, как я могу справиться с этим.

+0

Деление на ноль (либо со стандартным разделением или модуля) будет через 'DivideByZeroException'. Если вы не хотите, чтобы это исключение проверяло, что ваш делитель не равен нулю перед делением. – shf301

ответ

3

DivideByZeroException:

Исключение, которое генерируется, когда есть попытка разделить значение интеграла (например, int или long) или decimal нулем.

Это исключение также будет выброшен в случае a % b если b имеет значение 0.

Либо

  1. Guard выражение такое, что 0 никогда не используется в разделении/по модулю или;

  2. Поймайте исключение (Ик)

+2

+1 для обеспечения обоих вариантов, защита - лучшее решение. Если это происходит регулярно в вашем коде, лучше использовать функцию 'Divide (int a, int b)' для выполнения охраны, чтобы вы не повторялись и не забывали охранять. –

0

Вы должны поймать Exception и обработать его должным образом.

try 
{ 
    // your code that throws exception 
} 
catch (DivideByZeroException ex) 
{ 
    // Perform an appropriate action 
    // for example display a custom message 
    Console.WriteLine(ex.Message); 
} 

Для получения дополнительной информации см: Exceptions and Exception Handling