2013-12-19 5 views
1

У меня есть небольшой вопрос, что использование DivisionByZeroException, если мы сможем обработать, если блок else else. Я пробовал с googling, но не могу получить правильный ответ. Может ли кто-нибудь сказать мне подробно? Спасибо в AdvanceDivisionByZero, используя инструкции if else

+0

Нестандартный вопрос –

+2

Будет ли кто-нибудь действительно читать вопрос? –

+1

В java это [ArithmeticException] (http://docs.oracle.com/javase/7/docs/api/java/lang/ArithmeticException.html) –

ответ

6

Забудьте об исключении DivisionByZeroException, почти все исключения можно избежать, используя логику if-else.

Весь смысл исключений - это восстановление из неожиданного сценария и упрощение этого восстановления. Если в вашем коде есть 10 мест, где есть вероятность исключений, вы должны убедиться, что вы включили все условия if-else. Обработка исключений упрощает это. Вам не нужно проверять в любом месте, просто попробуйте их и поймайте, если вы получите какое-то исключение сразу.

Это также обеспечивает простой способ предоставления различных способов механизмов восстановления для разных исключений.

if(check for first type of exception) 
{ 
    do first task 
} 
else 
{ 
    return one type of error 
} 
do some intermediary task 
if(check for first type of exception && check for second type of exception) 
{ 
    do second task 
} 
else 
{ 
    if(exception is of one type) 
     return one type of error 
    if(exception is of second type) 
     return another type of error 
} 

приведенный выше код может быть более ясным, если вы используете некоторые пытаются ловить блоки, как показано ниже ...

try{ 
    do first task 
    do some intermediary task 
    do second task 
} 
catch(first type of exception) 
{ 
    return one type of error 
} 
catch(second type of exception) 
{ 
    return second type of error 
} 
catch(another type of exception developer may have forgotten) 
{ 
    return a generic error 
} 

Второй подход, очевидно, будет более ясно, как только вы получили хорошие знания по обработке исключений как и все остальные. Поток кода более легко проявляется во втором подходе.

+1

И добавление другой вещи к тому, что сказал Будда. Предположим, вы используете стороннюю api (JXL/JNA и т. Д.). Вы не знаете, что произойдет, если вы передадите неправильные значения аргументам. Вызываемая функция могла бы сказать «throws someException» (плохая практика программирования BTW) ... В таком сценарии вы не знаете, какое исключение вы получите. Если вы не знаете, какое исключение вы можете получить, как вы можете использовать if-else, чтобы предотвратить его? .. Используя исключения, вы можете поймать его обобщенным способом и обрабатывать его как «JXLException/JNAException ..» – TheLostMind

+0

Да ... Хорошая точка. Вы не всегда знаете, что делать. – Buddha

Смежные вопросы