Waar en wanneer Exceptions afhandelen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Wouter J

Wouter J

07/05/2013 15:05:06
Quote Anchor link
Het niet kunnen connecten met een database is typisch zo'n exception die je laat opborrelen en vervolgens met een exception handler aan het eind opvangt.

En je catch hem dan kun je beslissen wat je wilt gaan doen. Je kan een nieuwe exception gooien, of je logt hem of je doet er niks mee. Voorbeeldje van een RouteLoader:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

namespace DS\Framework\Routing\Loader;

use DS\Framework\Config\Loader\LoaderInterface;
use DS\Framework\Config\Exception\FileNotFound;

class RouteLoader implements LoaderInterface
{
    public function load($filename)
    {

        try {
            if (file_exists($filename)) {
                throw new FileNotFoundException($filename);
            }

            $content = file_get_contents($filename);

            $routes = $this->parser->parse($content); // gooit een exception als de syntax verkeerd is
        } catch (\Exception $e) {
            throw new LoaderException(sprintf('Unable to load "%s"', $filename), 0, $e);
        }
    }
}

?>

Hij vangt alle exceptions op die ontstaan bij het loaden van een bestand. Vervolgens maakt hij een nieuwe exception die duidelijk maakt dat er iets verkeerd is met het laden. Tevens bind je de vorige exception aan de nieuwe.
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.