public function enterCatch(array $classes, string $variableName) : self
{
$variableTypes = $this->getVariableTypes();
if (count($classes) === 1) {
$type = new ObjectType((string) $classes[0], false);
} else {
$type = new MixedType(false);
}
$variableTypes[$variableName] = $type;
return new self($this->broker, $this->printer, $this->getFile(), $this->isDeclareStrictTypes(), $this->getClass(), $this->getFunction(), $this->getNamespace(), $variableTypes, $this->inClosureBindScopeClass, $this->getAnonymousFunctionReturnType(), $this->isInAnonymousClass() ? $this->getAnonymousClass() : null, null, $this->isNegated(), $this->moreSpecificTypes);
}