Я видел несколько вопросов, касающихся этой темы, но я думаю, что у меня более фундаментальная нехватка того, как лучше всего использовать блоки try/catch, помимо самых простых примеров.
В этом конкретном случае у меня есть ряд методов для решения проблемы, от простого к довольно сложному, и я имею в виду что-то вроде:
if ($zombie_killer -> board_with_nail == 'failed') {
if ($zombie_killer -> machette == 'failed') {
if ($zombie_killer -> shotgun == 'failed') {
$this -> panic;
}
}
}
Но вместо этого я подумал, что может быть лучшим подходом использовать блок try/catch, чтобы было больше места для добавления пользовательских подпроцессов, таких как ведение журнала, почему метод не работает, обновление пользовательского интерфейса для отражения «аварии». больше, чем обычно время удержания», или что-то еще. Так что я предполагаю, что это будет что-то вроде:
try {
$zombie_killer -> board_with_nail;
}
catch(Exception $e) {
try {
$zombie_killer -> machette;
}
}
Но это не намного лучше, и, учитывая всю обратную реакцию, которую другие получили с «что лучше, если/иначе или попробовать/поймать», я совершенно ясно понимаю, что, по крайней мере, есть большие различия и причины для их использования. . Вот почему я спрашиваю об этом варианте использования, потому что мне кажется, что с ним лучше всего справляется попытка/поймать, но я не могу понять, чувствует ли он себя плохо, потому что я действительно не использовал их много или потому что я не подходим к этому правильно.
if(($zombie_killer -> board_with_nail == 'failed') && ($zombie_killer -> machette == 'failed') && ($zombie_killer -> shotgun == 'failed'))
? - person Mahn   schedule 07.08.2012