IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: PHP: Nefunkční try-catch blok

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:12.12.2012 15:41

Zdravím, tvořím controller podle parametru v URL adrese a chci odchytit nesmyslná URL. Zkusil jsem try-catch blok, ale nějak se tomu nechce fungovat :)

try
{
        $controllerClass = $this->dashesToCamelCase(array_shift($parsed), true) . 'Controller';
        $this->controller = new $controllerClass;
}
catch (Exception $e)
{
        header("HTTP/1.0 404 Not Found");
        exit;
}

file_exists se mi používat nechce. Je to vůbec dobré řešení? Strašně nemám rád routování, chci co nejvíce automatiky, ale zas si říkám, že se to asi stejně bude muset překládat do češtiny.

Odpovědět
12.12.2012 15:41
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:12.12.2012 17:14

Fatální chyby se výjimkami zachytit nedají, ale tohle mi funguje:

<?php
register_shutdown_function('handleShutdown');

function handleShutdown() {
    if(error_get_last() !== NULL){
        echo("Chybicka se vloudila\n");
    }
}

function __autoload($class) {
    @require("$class.class.php");
}

$controllerClass = 'Controller';
$controller = new $controllerClass();
Nahoru Odpovědět
12.12.2012 17:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.