• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

catch nie wyłapuje wyjątku

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
115 wizyt
pytanie zadane 25 marca 2019 w PHP przez Q_Nick Mądrala (5,010 p.)

Witam. Mam taki problem, że catch nie wyłapuje wyjątku, który powinien poinformować o tym, że strona nie została odnaleziona. Podaje całe kody plików:

index.php:

<?php
$config=require __DIR__.'/../config.php';
require __DIR__."/../app/vendor/autoload.php";
require __DIR__."/../app/functions.php";
require __DIR__.'/../app/database/db_connect.php';

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing;

$request= Request::createFromGlobals();
$routes=require __DIR__.'/../app/routes.php';

$context=new Routing\RequestContext();
$context->fromRequest($request);
$matcher=new Routing\Matcher\UrlMatcher($routes, $context);

$response=new Response();

try{
    extract($matcher->match($request->getPathInfo()), EXTR_SKIP);
    ob_start();

    $db=new db_connect();

    include sprintf(__DIR__.'/../app/controllers/%s.php', explode('::', $_route)[0]);
    call_user_func($_route);

    $response=new Response(ob_get_clean());

}catch (Routing\Exception\RouteNotFoundException $e){
    $response->setStatusCode(404);
    $response->setContent('Brak strony o podanym adresie');

}catch (Exception $e){
    $response->setStatusCode(500);
    $response->setContent('Wewnętrzny błąd aplikacji');
}

$response->send();

routes.php:

<?php
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
$config=require __DIR__.'/../config.php';
$routes= new RouteCollection();

$routes->add('HomeController::index', new Route('/{lang}/home/{method}', array('lang'=>$config['default_lang'], 'controller'=>'home', 'method'=>'index')));
$routes->add('TestController::test', new Route('{lang}/test/test/{arg}', array('lang'=>$config['default_lang'], 'arg'=>'test')));
return $routes;

W teorii, po nie znalezieniu trasy w obiekcie $routes powinien zostać wyrzucony wyjątek, jednak tak się nie dzieje.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 451 wizyt
pytanie zadane 6 sierpnia 2016 w PHP przez Mavimix Dyskutant (8,420 p.)
0 głosów
2 odpowiedzi 646 wizyt
pytanie zadane 22 listopada 2018 w PHP przez marcolo Obywatel (1,530 p.)
0 głosów
1 odpowiedź 403 wizyt
pytanie zadane 24 maja 2018 w PHP przez OdsetekGlupoty Pasjonat (15,360 p.)

93,173 zapytań

142,184 odpowiedzi

321,967 komentarzy

62,500 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1149p. - dia-Chann
  2. 1131p. - Łukasz Piwowar
  3. 1124p. - CC PL
  4. 1118p. - Łukasz Eckert
  5. 1097p. - Michal Drewniak
  6. 1081p. - Marcin Putra
  7. 1076p. - rucin93
  8. 1071p. - rafalszastok
  9. 1054p. - Adrian Wieprzkowicz
  10. 1047p. - Piotr Aleksandrowicz
  11. 1036p. - Michał Telesz
  12. 1000p. - ssynowiec
  13. 992p. - Dominik Łempicki (kapitan)
  14. 922p. - Mariusz Fornal
  15. 865p. - Anonim 3619784
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...