То же исключение, брошенное в else и окружающие блоки catch - PullRequest
0 голосов
/ 18 июля 2011

У меня есть фрагмент кода, который проверяет, доступна ли сеть, и машина находится в домене AD (два, если проверяет в && конфигурации). Другая сторона медали, у меня есть еще заявления для каждого условия. Здесь я добавляю соответствующие исключения, если они недоступны (я не ожидаю, что машина не будет находиться в домене и т. Д., Это не обычное событие и т. Д.).

Проблема в условиях гонки. Я испытал несколько условий гонки, поэтому они заслуживают внимания. В этом случае после проверки сеть может выйти из строя, и в этом случае произойдет сбой кода, поэтому мне нужны блоки catch. Но тогда блоки перехвата будут ловить исключения того же типа, что и те, что были сгенерированы в блоках else (тех, которые не связаны с доменом или сетью).

Является ли это (те же типы исключений в блоках else и catch) запахом кода или совершенно хорошим кодированием?

РЕДАКТИРОВАТЬ: мой код такой:

if (networkIsAvailable && MachineOnDomain) { }
else if !(networkIsAvailable) { throw new networknotavailablexception... }
else if !(machineNotOnDomain // you get the idea

Это окружено try-catch, перехватывающим те же типы исключений.

Спасибо

1 Ответ

0 голосов
/ 18 июля 2011

вы можете поймать различные типы исключений:

try{
    int x = 1;
    int y = 0;
    int z = x /y;
}
catch(ArgumentNullException){
    //this will never be reached
}
catch(DivideByZeroException){
    // this code will be reached
}

поможет ли это в вашем случае?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...