Здесь возможно 2 варианта , первый find возвращает null или false, а второй пытается вызвать у него метод, либо simple равен null или false.
решение 1
if(!$simple){
//выход или throw new \Exception();
}
if(!($properties = $simple->find('.b-properties',0))){
//выход или throw new \Exception();
}
if(!($tr = $properties->find('tr'))){
//выход или throw new \Exception();
}
//Действия если ошибок нет и есть блок с ид=b-properties
Но рассово верно должно быть не проверка на null или false ,а на instanceof ожидаемого объекта
/*
сначала выполнится instanceof , потом отрицание "!" перед переменной ,
так как у instanceof выше приоритет чем у отрицания
*/
try{
if(!$simple instanceof Название_объекта){
//выход или throw new \Exception();
}
$properties = $simple->find('.b-properties',0);
if(!properties instanceof Название_объекта){
//выход или throw new \Exception();
}
$tr = $properties->find('tr');
if(!$tr instanceof Название_объекта){
//выход или throw new \Exception();
}
//Действия если ошибок нет и есть блок с ид=b-properties
}catch(\Exception $e){
echo $e->getMessage();
}