PHP interesse |
|
Hallo,
Er is me iets niet 100% duidelijk bij exceptions. Ik wil eigenlijk allemaal mijn errors-stap voor stap maken en dan allemaal gaan uitspuwen.
Ik wil iets bereiken als:
<?php
if(1!=2)
{
$error = '1 is nog steeds niet gelijk aan 2';
}
if(2!=3)
{
$error .= '<br/>2is nog steeds niet gelijk aan 3';
}
echo $error;
//Hier komen al de foutjes dus te staan
?>
<?php if(1!=2) { $error = '1 is nog steeds niet gelijk aan 2'; } if(2!=3) { $error .= '<br/>2is nog steeds niet gelijk aan 3'; } //Hier komen al de foutjes dus te staan ?>
Nu wil ik het zo niet doen, maar netjes met Exceptions, iets als volgt dus:
<?php
try
{
if(1!=2)
{
throw new Exception('1 is nog steeds niet gelijk aan 2');
}
if(2!=3)
{
throw new Exception('2 is nog steeds niet gelijk aan 3');
}
}
catch(Exception $e)
{
echo $e->getMessage();
//Hier zou ik dan ALLE errors wensen
}
?>
<?php try { if(1!=2) { throw new Exception('1 is nog steeds niet gelijk aan 2'); } if(2!=3) { throw new Exception('2 is nog steeds niet gelijk aan 3'); } } catch(Exception $e) { //Hier zou ik dan ALLE errors wensen } ?>
Ik krijg jammer genoeg enkel de eerste error terug. Nu ik weet ook wel dat het als volgt op te lossen valt:
<?php
try
{
if(1!=2)
{
throw new Exception('1 is nog steeds niet gelijk aan 2');
}
}
catch(Exception $e)
{
echo $e->getMessage();
//Ouput indien er een error is
}
try {
if(2!=3)
{
throw new Exception('2 is nog steeds niet gelijk aan 3');
}
}
catch(Exception $e)
{
echo '<br/>' . $e->getMessage() . "\n";
//nog een output indien er een error is
}
?>
<?php try { if(1!=2) { throw new Exception('1 is nog steeds niet gelijk aan 2'); } } catch(Exception $e) { //Ouput indien er een error is } try { if(2!=3) { throw new Exception('2 is nog steeds niet gelijk aan 3'); } } catch(Exception $e) { echo '<br/>' . $e->getMessage() . "\n"; //nog een output indien er een error is } ?>
Oké, dit kan ik wel toepassen, maar stel dat ik allemaal cheks doe op een inlogform. (Is de gebruikersnaam ingevuld? Bevat die minimaal zo veel tekens? Bevat die maximaal zo veel tekens? Bevat hij geen ongeldige tekens? Is het wachtwoord...)
Dan zou ik al heel wat try-catches moeten hebben. Ik hoop dat mijn punt (probleem) een beetje duidelijk is.
|