waar precies Exceptions catchen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ron -

Ron -

22/07/2008 15:20:00
Quote Anchor link
stel je hebt een klasse gemaakt, hierin throw je een exception als het fout gaat
nu doe ik dit:
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
<?php
try
{
    $foo = new foo();
}

catch(Exception $e)
{

    echo '<pre>';
    echo 'Regelnummer: '.$e->getLine().'<br>';
    echo 'Bestand: '.$e->getFile().'<br>';
    echo 'Foutmelding: '.$e->getMessage().'<br>';
    echo '</pre>';
}

?>


en vervolgens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$foo
->bar();
?>

moet ik de exceptions dan hier weer gaan catchen??
is toch wel een andere manier denk ik, maar hoe?
steeds in de klasse zelf catchen?
wie kan me helpen?

alvast bedankt!
(de code is maar een voorbeeld)
Gewijzigd op 01/01/1970 01:00:00 door Ron -
 
PHP hulp

PHP hulp

17/03/2025 17:51:25
 
Robert Deiman

Robert Deiman

22/07/2008 15:27:00
Quote Anchor link
In principe kan je de hele boel wel in 1 keer catchen, maar door het zo te doen als dat jij het al voorstelt (elk deel apart) krijg je een reactie ook op de plek waar het script anders iets weer zou hebben gegeven. Dus ik zou zo zeggen, blijf gewoon apart try/ catch blokken maken, maar je kan wel een bij elkaar horend stukje code in 1 keer try/ catchen.
 
Ron -

Ron -

22/07/2008 16:15:00
Quote Anchor link
kun je dan niet net zo goed in de klassen gewoon true of false returnen?

anders die ik het voordeel hier echt niet van in
 
Robert Deiman

Robert Deiman

22/07/2008 16:35:00
Quote Anchor link
Je kan een functie inderdaad gewoon true/ false laten teruggeven. Try/ Catch gebruik ik ook wel voor de algehele foutafhandeling. Ik wil niet dat een bezoeker ze ziet, maar wil zelf wel die fouten zien. Zo kan je bugs uit een script wegwerken, die je anders misschien helemaal niet had gemerkt.

Bezoekers krijgen keurig een melding "dat er IETS is foutgegaan" en ik krijg een bericht/ met wat er precies fout is gegaan.
 
Ron -

Ron -

22/07/2008 16:37:00
Quote Anchor link
ok, dus de bezoeker krijgt gewoon een 'echo' bericht?
 
Robert Deiman

Robert Deiman

22/07/2008 16:51:00
Quote Anchor link
Natuurlijk, je gaat een bezoeker toch niet laten zien welke fouten er precies in je code zitten? Die schotel je gewoon de website voor, en op een plek waar iets fout gaat, geef je een melding, bijv:
'Er heeft zich een fout voorgedaan waardoor "naam_onderdeel" niet kon worden geladen. Wij zullen deze zo spoedig mogelijk herstellen.'

De bezoeker heeft er neits aan om (bijvoorbeeld) de naam van een variabele te zien waar iets mis mee gaat, dat staat ook best slordig.
 
Ron -

Ron -

22/07/2008 16:55:00
Quote Anchor link
das waar, maar zo bedoelde ik het eigenlijk ook niet, ik bedoel als je bijv doet:

throw new Exception('Inloggen mislukt');

dan krijgt de bezoeker toch alleen maar die tekst te zien..
alleen ik doet dit nu met echo's, omdat ik dan niet hoef te catchen

als je met PDO werkt, dan zijn Exceptions weer wel handig
 



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.