Functie try catch voor andere functies
Aangezien ik al heel goed ben in oo programmeren in C#, ben ik dit nu ook aan het leren in php.
ik heb volgende testcode en heb daar een functie gemaakt met een try catch.
Nu ik wil niet bij alles wat ik doe, try catch maken enz. Dus dat de try catch gebeurt doormiddel van een functie genaamd _tryFunctie.
Vb. ik gebruik de functie _printMessage($message) en wil die latene doorlopen door een try catch dus ik zou iets wilen dat het effect geeft als _tryFunction(_printMessage($message) ). Hoe kan ik dit het best aanpakken?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
class customException extends Exception {}
class Printing
{
public function _tryFunction($function)
{
try
{
$function;
}
catch(Exception $e)
{
echo $e;
}
}
public function _printMessage($message)
{
echo $message;
}
public function _printError($error)
{
echo $error;
}
}
$a = new Printing();
$a -> _printMessage('message<br />');
$a -> _printError('<strong>error</strong>');
exit();
?>
class customException extends Exception {}
class Printing
{
public function _tryFunction($function)
{
try
{
$function;
}
catch(Exception $e)
{
echo $e;
}
}
public function _printMessage($message)
{
echo $message;
}
public function _printError($error)
{
echo $error;
}
}
$a = new Printing();
$a -> _printMessage('message<br />');
$a -> _printError('<strong>error</strong>');
exit();
?>
Gewijzigd op 01/01/1970 01:00:00 door Tom Beuckelaere
Dan wordt het weer een beetje omslachtig om bv 100 switches te maken, k zou gewoon tussen die _tryFunction() de naam van mijn te "tryen" functie moeten kunnen plaatsen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function test()
{
echo 'Het werkt';
}
function voerUit($functie)
{
$functie();
}
voerUit('test');
?>
function test()
{
echo 'Het werkt';
}
function voerUit($functie)
{
$functie();
}
voerUit('test');
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
try{
$a = new Printing();
$a -> _printMessage('message<br />');
$a -> _printError('<strong>error</strong>');
}catch(Exception $e){
echo $e->getMessage();
}
?>
try{
$a = new Printing();
$a -> _printMessage('message<br />');
$a -> _printError('<strong>error</strong>');
}catch(Exception $e){
echo $e->getMessage();
}
?>
Meestal zit je try catch op dat niveau, ik begrijp alleen niet goed of je nu andere bedoelingen hebt?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
class customException extends Exception {}
class Printing
{
public function _printMessage($message)
{
echo $message;
}
public function _printError($error)
{
echo $error;
}
public function _tryFunction($function)
{
try
{
$function();
}
catch(Exception $e)
{
echo $e;
}
}
}
$a = new Printing();
$a -> _tryFunction($a->_printMessage('message<br />'));
$a -> _printError('<strong>error</strong>');
exit();
?>
class customException extends Exception {}
class Printing
{
public function _printMessage($message)
{
echo $message;
}
public function _printError($error)
{
echo $error;
}
public function _tryFunction($function)
{
try
{
$function();
}
catch(Exception $e)
{
echo $e;
}
}
}
$a = new Printing();
$a -> _tryFunction($a->_printMessage('message<br />'));
$a -> _printError('<strong>error</strong>');
exit();
?>
Gewijzigd op 01/01/1970 01:00:00 door Tom Beuckelaere
Boaz schreef op 11.02.2007 15:56:
Meestal zit je try catch op dat niveau, ik begrijp alleen niet goed of je nu andere bedoelingen hebt?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
try{
$a = new Printing();
$a -> _printMessage('message<br />');
$a -> _printError('<strong>error</strong>');
}catch(Exception $e){
echo $e->getMessage();
}
?>
try{
$a = new Printing();
$a -> _printMessage('message<br />');
$a -> _printError('<strong>error</strong>');
}catch(Exception $e){
echo $e->getMessage();
}
?>
Meestal zit je try catch op dat niveau, ik begrijp alleen niet goed of je nu andere bedoelingen hebt?
Wel niet alle functies zal ik steeds nodig hebben dus vandaar dat niet alles steeds in try catch zal staan daar onderaan. Kheb voorbeeld alleen de functie _printMessage nodig in een bepaald bestand dus dan roep ik _printMessage aan die door die door de _tryFunctie () gaat. Uiteindelijk komt dit alles terecht in een functions.php
Dan moet je het try / catch statement dus op een nog hoger (zo je wil lager) niveau zetten, dan pakt ie ook alle exceptions van onderliggende code / files etc. mee.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Gewijzigd op 01/01/1970 01:00:00 door Tom Beuckelaere
stel de volgende situatie:
Je hebt een nieuws systeem, in
clsPageBuilder wordt de pagina gebouwd deze maakt gebruik van :
clsDatabase en clsNogIest
Maar clsDatabase en clsNogIets worden niet direct aangeroepen alleen via clsPageBuilder
Dan is het genoeg op 1 try / catch te hebben:
try{
$oPage = new clsPageBuilder();
$oPage->eenActie();
}catch(Exception $e){
echo $e->getMessage();
}
?>
Omdat alle aanroepen binnen clsPageBuilder worden gedaan worden hier ook alle exceptions van clsDatabase en clsNogIets opgevangen.
Dit is dus zeg maar 'het hoogste niveau' je hebt dus genoeg aan één try / catch en hoeft niet voor 1 classe apart te testen of het wel lukt.
Geen idee of je er wat aan hebt / of je dit bedoelde maar zo zou ik het doen.
Ja, ksnap het, merci voor de hulp