(PECL rar >= 2.0.0)
RarException::setUsingExceptions — Включить или отключить генерацию исключений вместо возвращения ошибок
$using_exceptions
) : void
Если аргумент задан как TRUE
, то, вместо выдачи предупреждения и возврата
ошибки, библиотека UnRAR будет бросать исключение типа RarException
в случае ошибки.
Также исключения будут брошены в случае следующих ошибок, произошедших вне библиотеки (их код возврата должен быть равен -1):
using_exceptions
TRUE
для активации создания исключений, FALSE
для деактивации (по умолчанию).
Пример #1 Пример использования RarException::setUsingExceptions()
<?php
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch);
RarException::setUsingExceptions(true);
var_dump(RarException::isUsingExceptions());
$arch = RarArchive::open("does_not_exist.rar");
var_dump($arch); //not reached
?>
Результатом выполнения данного примера будет что-то подобное:
bool(false) Warning: RarArchive::open(): Failed to open does_not_exist.rar: ERAR_EOPEN (file open error) in C:\php_rar\trunk\tests\test.php on line 3 bool(false) bool(true) Fatal error: Uncaught exception 'RarException' with message 'unRAR internal error: Failed to open does_not_exist.rar: ERAR_EOPEN (file open error)' in C:\php_rar\trunk\tests\test.php:8 Stack trace: #0 C:\php_rar\trunk\tests\test.php(8): RarArchive::open('does_not_exist....') #1 {main} thrown in C:\php_rar\trunk\tests\test.php on line 8