Koenig, Тут смотри в чём дело.
Вот у тебя в конструкторе есть строка:
if (!extension_loaded('zip')) {
die('Unsupported Ziparchive class');
}В этом случае мы увидим белую страницу с текстом Unsupported Ziparchive class
Ты не оставляешь пользователю твоего класса выбора.
А вот в этом случае:
if (!extension_loaded('zip')) {
throw new \RuntimeException('Unsupported Ziparchive class');
}Я смогу сделать так:
try {
new Zip();
} catch (\RuntimeException $e) {
$error = $e->getMessage();
}И уже далее, например, сохранить сообщение в лог а пользователю отдать человеко-понятное сообщение.