PHP ZipArchive управление исключениями - PullRequest
0 голосов
/ 07 февраля 2020

Я получил этот код

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 Неустранимая ошибка: необработанное исключение: не удалось получить доступ к контейнеру

Как можно избавиться от предупреждения и правильно обработать исключение?

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