Я получил этот код
public function __construct($file){
$zip = new ZipArchive();
if(!@$zip->open($this->file)){
throw new Exception('Failed to read file');
}
$data = $zip->getFromName('container.xml');
if($data == false){
throw new Exception('Failed to access container');
}
...
}
Если файл поврежден, я бы хотел, чтобы процесс завершился и просто обработал ошибку.
Функция вызывается так:
try{
$data = new FileProcess($filename);
}catch (Exception $e){
$error = $e->getMessage();
}
Однако весь процесс останавливается и журнал показывает:
PHP Предупреждение: ZipArchive :: getFromName (): недействительный или неинициализированный Zip
PHP Неустранимая ошибка: необработанное исключение: не удалось получить доступ к контейнеру
Как можно избавиться от предупреждения и правильно обработать исключение?