Uncaught исключение с пространством имен

Я читаю книгу о php, и я нашел этот скрипт, который не работает:

namespace woo\controller {

// woo\controller\ApplicationHelper;
class ApplicationHelper {

function getOptions() {
if (!file_exists("data/woo_options_not_there.xml")) {
$r = new \woo\base\AppException("Non riesco ad aprire il file<br>");
throw new $r;
}
$options = simplexml_load_file("data/woo_options.xml");
$dsn = (string) $options->dsn;
print $dsn;
}

}

$d = (new ApplicationHelper())->getOptions();
}

namespace woo\base {

class AppException extends \Exception {

}

}

Вы можете мне помочь?

Это ошибка:

Неустранимая ошибка: необработанное исключение ‘woo \ base \ AppException’ в C: \ xampp \ htdocs \ 9781430260318_Chapter_12_Code \ Listings12.00.php: 11 Трассировка стека: # 0 C: \ xampp \ htdocs \ 9781430260318_Chapter_12_Cp. ): woo \ controller \ ApplicationHelper-> getOptions () # 1 {main}, брошенный в C: \ xampp \ htdocs \ 9781430260318_Chapter_12_Code \ Listings12.00.php в строке 11

0

Решение

Итак, давайте следовать логике здесь

Мы создаем класс ApplicationHelper а затем создать его экземпляр. Затем мы называем getOptions() который ищет файл XML и, если он не находит его, выдает исключение.

Ваш код работает нормально, вы просто забыли catch исключение (это приводит к фатальной ошибке PHP)

try {
$d = (new ApplicationHelper())->getOptions();
} catch(\woo\base\AppException $err) {
echo 'Error: ' . $err->getMessage();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]